aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator
diff options
context:
space:
mode:
Diffstat (limited to 'share/qtcreator')
-rw-r--r--share/qtcreator/cplusplus/examples/CMakeLists.txt2
-rw-r--r--share/qtcreator/debugger-with-python2/README.txt (renamed from share/qtcreator/debugger/python2/README.txt)0
-rw-r--r--share/qtcreator/debugger-with-python2/android_stdtypes.py (renamed from share/qtcreator/debugger/python2/android_stdtypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/boosttypes.py (renamed from share/qtcreator/debugger/python2/boosttypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/cdbbridge.py (renamed from share/qtcreator/debugger/python2/cdbbridge.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/creatortypes.py (renamed from share/qtcreator/debugger/python2/creatortypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/dumper.py (renamed from share/qtcreator/debugger/python2/dumper.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/gdbbridge.py (renamed from share/qtcreator/debugger/python2/gdbbridge.py)4
-rw-r--r--share/qtcreator/debugger-with-python2/gdbtracepoint.py (renamed from share/qtcreator/debugger/python2/gdbtracepoint.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/libcpp_stdtypes.py (renamed from share/qtcreator/debugger/python2/libcpp_stdtypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/lldbbridge.py (renamed from share/qtcreator/debugger/python2/lldbbridge.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/misctypes.py (renamed from share/qtcreator/debugger/python2/misctypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/opencvtypes.py (renamed from share/qtcreator/debugger/python2/opencvtypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/pdbbridge.py (renamed from share/qtcreator/debugger/python2/pdbbridge.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/personaltypes.py (renamed from share/qtcreator/debugger/python2/personaltypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/qttypes.py (renamed from share/qtcreator/debugger/python2/qttypes.py)0
-rw-r--r--share/qtcreator/debugger-with-python2/stdtypes.py (renamed from share/qtcreator/debugger/python2/stdtypes.py)2
-rw-r--r--share/qtcreator/debugger-with-python2/utils.py (renamed from share/qtcreator/debugger/python2/utils.py)0
-rw-r--r--share/qtcreator/debugger/LICENSE.MIT20
-rw-r--r--share/qtcreator/debugger/gdbbridge.py4
-rw-r--r--share/qtcreator/debugger/stdtypes.py2
-rw-r--r--share/qtcreator/debugger/visualize.py86
-rw-r--r--share/qtcreator/qmldesigner/EasingCurves.ini2
-rw-r--r--share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml6
-rw-r--r--share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml31
-rw-r--r--share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsView.qml8
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml28
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml48
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml314
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml163
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml215
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml143
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/ColorViewDelegate.qml46
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/EditPropertyDialog.qml5
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/ImportDialog.qml33
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/ModelSourceItem.qml36
-rw-r--r--share/qtcreator/qmldesigner/collectionEditorQmlSource/NewCollectionDialog.qml98
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml46
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterial.qml13
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialContextMenu.qml13
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialsView.qml25
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexture.qml6
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexturesView.qml3
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryUserView.qml169
-rw-r--r--share/qtcreator/qmldesigner/contentLibraryQmlSource/UnimportBundleMaterialDialog.qml23
-rw-r--r--share/qtcreator/qmldesigner/designericons.json3
-rw-r--r--share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml156
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml47
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml184
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml229
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml19
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml2
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml66
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/EffectNodesComboBox.qml5
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/PreviewImagesComboBox.qml2
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml10
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueChannel.qml15
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml10
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml20
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueImage.qml28
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml16
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml35
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml52
-rw-r--r--share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml69
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-16.pngbin0 -> 315 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.pngbin0 -> 514 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.pngbin0 -> 1846 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.pngbin0 -> 298 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.pngbin0 -> 211 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.pngbin0 -> 342 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.pngbin0 -> 118 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.pngbin0 -> 363 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.pngbin0 -> 472 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.pngbin0 -> 803 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.pngbin0 -> 311 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.pngbin0 -> 924 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.pngbin0 -> 1691 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.pngbin0 -> 359 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.pngbin0 -> 595 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.pngbin0 -> 1129 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.pngbin0 -> 276 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.pngbin0 -> 419 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.pngbin0 -> 878 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.pngbin0 -> 299 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.pngbin0 -> 228 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.pngbin0 -> 386 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.pngbin0 -> 320 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.pngbin0 -> 229 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.pngbin0 -> 643 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/button-icon.pngbin0 -> 162 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.pngbin0 -> 145 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.pngbin0 -> 259 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.pngbin0 -> 258 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.pngbin0 -> 230 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.pngbin0 -> 336 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.pngbin0 -> 113 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.pngbin0 -> 118 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.pngbin0 -> 121 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.pngbin0 -> 156 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.pngbin0 -> 155 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.pngbin0 -> 185 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/component-icon.pngbin0 -> 626 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.pngbin0 -> 438 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.pngbin0 -> 1107 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/control-icon.pngbin0 -> 293 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.pngbin0 -> 229 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.pngbin0 -> 509 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/default-icon.pngbin0 -> 813 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/default3d.pngbin0 -> 375 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/default3d16.pngbin0 -> 253 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.pngbin0 -> 499 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.pngbin0 -> 189 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.pngbin0 -> 160 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.pngbin0 -> 286 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.pngbin0 -> 267 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.pngbin0 -> 243 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.pngbin0 -> 505 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.pngbin0 -> 205 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.pngbin0 -> 490 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.pngbin0 -> 638 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.pngbin0 -> 311 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.pngbin0 -> 384 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.pngbin0 -> 674 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.pngbin0 -> 246 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.pngbin0 -> 209 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.pngbin0 -> 322 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.pngbin0 -> 678 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.pngbin0 -> 466 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.pngbin0 -> 98 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.pngbin0 -> 101 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.pngbin0 -> 129 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.pngbin0 -> 143 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.pngbin0 -> 161 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.pngbin0 -> 182 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.pngbin0 -> 121 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.pngbin0 -> 117 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.pngbin0 -> 125 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.pngbin0 -> 93 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.pngbin0 -> 97 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.pngbin0 -> 125 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.pngbin0 -> 127 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.pngbin0 -> 102 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.pngbin0 -> 137 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.pngbin0 -> 133 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.pngbin0 -> 125 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.pngbin0 -> 136 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/image-icon.pngbin0 -> 434 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.pngbin0 -> 296 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.pngbin0 -> 596 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/item-icon.pngbin0 -> 148 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.pngbin0 -> 135 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.pngbin0 -> 167 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.pngbin0 -> 127 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.pngbin0 -> 124 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.pngbin0 -> 133 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.pngbin0 -> 190 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/label-icon.pngbin0 -> 206 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.pngbin0 -> 182 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.pngbin0 -> 284 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.pngbin0 -> 148 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.pngbin0 -> 136 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.pngbin0 -> 158 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.pngbin0 -> 321 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.pngbin0 -> 222 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.pngbin0 -> 483 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.pngbin0 -> 148 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.pngbin0 -> 179 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.pngbin0 -> 260 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.pngbin0 -> 358 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.pngbin0 -> 263 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.pngbin0 -> 755 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/page-icon.pngbin0 -> 190 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.pngbin0 -> 148 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.pngbin0 -> 195 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.pngbin0 -> 179 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.pngbin0 -> 158 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.pngbin0 -> 207 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.pngbin0 -> 93 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.pngbin0 -> 92 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.pngbin0 -> 96 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.pngbin0 -> 457 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.pngbin0 -> 320 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.pngbin0 -> 864 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.pngbin0 -> 101 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.pngbin0 -> 92 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.pngbin0 -> 127 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.pngbin0 -> 279 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.pngbin0 -> 218 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.pngbin0 -> 482 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.pngbin0 -> 269 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.pngbin0 -> 231 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.pngbin0 -> 282 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.pngbin0 -> 169 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.pngbin0 -> 135 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.pngbin0 -> 237 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.pngbin0 -> 191 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.pngbin0 -> 187 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.pngbin0 -> 196 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.pngbin0 -> 229 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.pngbin0 -> 186 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.pngbin0 -> 381 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.pngbin0 -> 115 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.pngbin0 -> 120 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.pngbin0 -> 126 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.pngbin0 -> 110 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.pngbin0 -> 116 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.pngbin0 -> 145 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.pngbin0 -> 190 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.pngbin0 -> 156 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.pngbin0 -> 227 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.pngbin0 -> 319 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.pngbin0 -> 664 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.pngbin0 -> 1536 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.pngbin0 -> 144 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.pngbin0 -> 151 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.pngbin0 -> 178 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.pngbin0 -> 162 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.pngbin0 -> 151 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.pngbin0 -> 167 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.pngbin0 -> 163 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.pngbin0 -> 152 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.pngbin0 -> 184 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.pngbin0 -> 205 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.pngbin0 -> 160 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.pngbin0 -> 314 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.pngbin0 -> 150 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.pngbin0 -> 169 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.pngbin0 -> 193 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-icon.pngbin0 -> 126 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.pngbin0 -> 141 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.pngbin0 -> 156 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.pngbin0 -> 158 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.pngbin0 -> 140 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.pngbin0 -> 170 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.pngbin0 -> 149 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.pngbin0 -> 133 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.pngbin0 -> 163 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.pngbin0 -> 154 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.pngbin0 -> 147 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.pngbin0 -> 172 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.pngbin0 -> 389 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.pngbin0 -> 296 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.pngbin0 -> 339 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.pngbin0 -> 712 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.pngbin0 -> 1305 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.pngbin0 -> 131 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.pngbin0 -> 114 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.pngbin0 -> 140 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.pngbin0 -> 141 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.pngbin0 -> 128 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.pngbin0 -> 158 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.pngbin0 -> 111 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.pngbin0 -> 123 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.pngbin0 -> 131 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.pngbin0 -> 132 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.pngbin0 -> 127 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.pngbin0 -> 153 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-16px.pngbin0 -> 216 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-24px.pngbin0 -> 286 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.pngbin0 -> 399 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.pngbin0 -> 289 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.pngbin0 -> 387 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.pngbin0 -> 610 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.pngbin0 -> 804 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.pngbin0 -> 519 bytes
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo84
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/qml.metainfo53
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/qtquickcontrols2.metainfo575
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/quick.metainfo (renamed from share/qtcreator/qmldesigner/propertyEditorQmlSources/quick.metainfo)406
-rw-r--r--share/qtcreator/qmldesigner/itemLibrary/quick3d.metainfo125
-rw-r--r--share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml9
-rw-r--r--share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/PopupDialogButton.qml2
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml2
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml44
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml509
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ItemPane.qml4
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/ColumnLayoutSpecifics.qml23
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml50
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml23
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml5
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/CheckBox.qml8
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml3
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DynamicPropertiesSection.qml93
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml145
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml34
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PropertyEditorPane.qml1
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml200
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/SpinBox.qml3
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml26
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/qmldir1
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/ComboBox.qml13
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/CustomComboBox.qml112
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/PopupDialog.qml6
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/RealSpinBox.qml26
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SpinBox.qml12
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/TopLevelComboBox.qml2
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/qmldir1
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml606
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml3
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttfbin66308 -> 66776 bytes
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/files/qtquickfile/file.qml.tpl1
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/files/qtuiquickfile/file.qml.tpl1
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-3d/wizard.json89
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/Screen01.ui.qml.tpl70
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/contentmodule.main.qml.tpl36
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank.pngbin0 -> 807 bytes
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank@2.pngbin0 -> 1575 bytes
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/detailsPage.qml8
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/wizard.json334
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json98
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.content.txt.tpl14
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.imports.txt.tpl4
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl56
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/app.qmlproject.tpl37
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/app_environment.h.tpl19
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/contentmodule.main.qml.tpl17
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_components_plugins.h.tpl19
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_plugins.h.tpl9
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/insight.tpl19
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/main.cpp.tpl37
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/main.qml8
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/qmlcomponents.tpl34
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/qmlmodules.tpl18
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/common/qtquickcontrols2.conf23
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/desktop-launcher/wizard.json77
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/mobile-scroll/wizard.json86
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/mobile-stack/wizard.json88
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/mobile-swipe/wizard.json88
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Colors.json.tpl18
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl2
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/DirectoryFontLoader.qml.tpl2
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/importmodule.qmldir.tpl2
-rw-r--r--share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/models.json.tpl82
-rw-r--r--share/qtcreator/qmldesigner/toolbar/Main.qml26
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml12
-rw-r--r--share/qtcreator/themes/dark.creatortheme1
-rw-r--r--share/qtcreator/themes/default.creatortheme5
-rw-r--r--share/qtcreator/themes/design-light.creatortheme1
-rw-r--r--share/qtcreator/themes/design.creatortheme1
-rw-r--r--share/qtcreator/themes/flat-dark.creatortheme1
-rw-r--r--share/qtcreator/themes/flat-light.creatortheme18
-rw-r--r--share/qtcreator/themes/flat.creatortheme16
-rw-r--r--share/qtcreator/themes/light-palette.inc41
-rw-r--r--share/qtcreator/translations/qtcreator_da.ts48
-rw-r--r--share/qtcreator/translations/qtcreator_de.ts702
-rw-r--r--share/qtcreator/translations/qtcreator_fr.ts101
-rw-r--r--share/qtcreator/translations/qtcreator_hr.ts24
-rw-r--r--share/qtcreator/translations/qtcreator_ja.ts48
-rw-r--r--share/qtcreator/translations/qtcreator_pl.ts62
-rw-r--r--share/qtcreator/translations/qtcreator_ru.ts56
-rw-r--r--share/qtcreator/translations/qtcreator_sl.ts8
-rw-r--r--share/qtcreator/translations/qtcreator_uk.ts48
-rw-r--r--share/qtcreator/translations/qtcreator_zh_CN.ts31
353 files changed, 5623 insertions, 2794 deletions
diff --git a/share/qtcreator/cplusplus/examples/CMakeLists.txt b/share/qtcreator/cplusplus/examples/CMakeLists.txt
index 004deeded3e..7d14eba5b98 100644
--- a/share/qtcreator/cplusplus/examples/CMakeLists.txt
+++ b/share/qtcreator/cplusplus/examples/CMakeLists.txt
@@ -8,7 +8,7 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
-set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets REQUIRED)
diff --git a/share/qtcreator/debugger/python2/README.txt b/share/qtcreator/debugger-with-python2/README.txt
index 70e03d52ca9..70e03d52ca9 100644
--- a/share/qtcreator/debugger/python2/README.txt
+++ b/share/qtcreator/debugger-with-python2/README.txt
diff --git a/share/qtcreator/debugger/python2/android_stdtypes.py b/share/qtcreator/debugger-with-python2/android_stdtypes.py
index 8b25d7bb358..8b25d7bb358 100644
--- a/share/qtcreator/debugger/python2/android_stdtypes.py
+++ b/share/qtcreator/debugger-with-python2/android_stdtypes.py
diff --git a/share/qtcreator/debugger/python2/boosttypes.py b/share/qtcreator/debugger-with-python2/boosttypes.py
index 5eb0c1a1be9..5eb0c1a1be9 100644
--- a/share/qtcreator/debugger/python2/boosttypes.py
+++ b/share/qtcreator/debugger-with-python2/boosttypes.py
diff --git a/share/qtcreator/debugger/python2/cdbbridge.py b/share/qtcreator/debugger-with-python2/cdbbridge.py
index a9d86e24ee1..a9d86e24ee1 100644
--- a/share/qtcreator/debugger/python2/cdbbridge.py
+++ b/share/qtcreator/debugger-with-python2/cdbbridge.py
diff --git a/share/qtcreator/debugger/python2/creatortypes.py b/share/qtcreator/debugger-with-python2/creatortypes.py
index 24c16ce0094..24c16ce0094 100644
--- a/share/qtcreator/debugger/python2/creatortypes.py
+++ b/share/qtcreator/debugger-with-python2/creatortypes.py
diff --git a/share/qtcreator/debugger/python2/dumper.py b/share/qtcreator/debugger-with-python2/dumper.py
index 1fd42848d4e..1fd42848d4e 100644
--- a/share/qtcreator/debugger/python2/dumper.py
+++ b/share/qtcreator/debugger-with-python2/dumper.py
diff --git a/share/qtcreator/debugger/python2/gdbbridge.py b/share/qtcreator/debugger-with-python2/gdbbridge.py
index d61160eed3b..9699e518fe3 100644
--- a/share/qtcreator/debugger/python2/gdbbridge.py
+++ b/share/qtcreator/debugger-with-python2/gdbbridge.py
@@ -772,7 +772,7 @@ class Dumper(DumperBase):
def makeStdString(init):
# Works only for small allocators, but they are usually empty.
- gdb.execute('set $d=(std::string*)calloc(sizeof(std::string), 2)')
+ gdb.execute('set $d=(std::string*)calloc(2, sizeof(std::string))')
gdb.execute('call($d->basic_string("' + init +
'",*(std::allocator<char>*)(1+$d)))')
value = gdb.parse_and_eval('$d').dereference()
@@ -787,7 +787,7 @@ class Dumper(DumperBase):
h = self.hexencode(data)
#DumperBase.warn('DATA: %s' % h)
string = ''.join('\\x' + h[2 * i:2 * i + 2] for i in range(size))
- exp = '(%s*)memcpy(calloc(%d, 1), "%s", %d)' \
+ exp = '(%s*)memcpy(calloc(1, %d), "%s", %d)' \
% (value.type.name, size, string, size)
#DumperBase.warn('EXP: %s' % exp)
res = gdb.parse_and_eval(exp)
diff --git a/share/qtcreator/debugger/python2/gdbtracepoint.py b/share/qtcreator/debugger-with-python2/gdbtracepoint.py
index 871132ac48d..871132ac48d 100644
--- a/share/qtcreator/debugger/python2/gdbtracepoint.py
+++ b/share/qtcreator/debugger-with-python2/gdbtracepoint.py
diff --git a/share/qtcreator/debugger/python2/libcpp_stdtypes.py b/share/qtcreator/debugger-with-python2/libcpp_stdtypes.py
index 44b3a235ffd..44b3a235ffd 100644
--- a/share/qtcreator/debugger/python2/libcpp_stdtypes.py
+++ b/share/qtcreator/debugger-with-python2/libcpp_stdtypes.py
diff --git a/share/qtcreator/debugger/python2/lldbbridge.py b/share/qtcreator/debugger-with-python2/lldbbridge.py
index 4d9b74b2ea2..4d9b74b2ea2 100644
--- a/share/qtcreator/debugger/python2/lldbbridge.py
+++ b/share/qtcreator/debugger-with-python2/lldbbridge.py
diff --git a/share/qtcreator/debugger/python2/misctypes.py b/share/qtcreator/debugger-with-python2/misctypes.py
index 9099f19a2f7..9099f19a2f7 100644
--- a/share/qtcreator/debugger/python2/misctypes.py
+++ b/share/qtcreator/debugger-with-python2/misctypes.py
diff --git a/share/qtcreator/debugger/python2/opencvtypes.py b/share/qtcreator/debugger-with-python2/opencvtypes.py
index 5cfd60c5d25..5cfd60c5d25 100644
--- a/share/qtcreator/debugger/python2/opencvtypes.py
+++ b/share/qtcreator/debugger-with-python2/opencvtypes.py
diff --git a/share/qtcreator/debugger/python2/pdbbridge.py b/share/qtcreator/debugger-with-python2/pdbbridge.py
index 228f4c8c1fc..228f4c8c1fc 100644
--- a/share/qtcreator/debugger/python2/pdbbridge.py
+++ b/share/qtcreator/debugger-with-python2/pdbbridge.py
diff --git a/share/qtcreator/debugger/python2/personaltypes.py b/share/qtcreator/debugger-with-python2/personaltypes.py
index 291922b8fa2..291922b8fa2 100644
--- a/share/qtcreator/debugger/python2/personaltypes.py
+++ b/share/qtcreator/debugger-with-python2/personaltypes.py
diff --git a/share/qtcreator/debugger/python2/qttypes.py b/share/qtcreator/debugger-with-python2/qttypes.py
index b08f60a9bb3..b08f60a9bb3 100644
--- a/share/qtcreator/debugger/python2/qttypes.py
+++ b/share/qtcreator/debugger-with-python2/qttypes.py
diff --git a/share/qtcreator/debugger/python2/stdtypes.py b/share/qtcreator/debugger-with-python2/stdtypes.py
index c14812dee1d..8bc86671c69 100644
--- a/share/qtcreator/debugger/python2/stdtypes.py
+++ b/share/qtcreator/debugger-with-python2/stdtypes.py
@@ -850,7 +850,7 @@ def qedit__std__vector(d, value, data):
values = data.split(',')
n = len(values)
innerType = value.type[0].name
- cmd = "set $d = (%s*)calloc(sizeof(%s)*%s,1)" % (innerType, innerType, n)
+ cmd = "set $d = (%s*)calloc(%s,sizeof(%s))" % (innerType, n, innerType)
gdb.execute(cmd)
cmd = "set {void*[3]}%s = {$d, $d+%s, $d+%s}" % (value.address(), n, n)
gdb.execute(cmd)
diff --git a/share/qtcreator/debugger/python2/utils.py b/share/qtcreator/debugger-with-python2/utils.py
index 8019d1e530a..8019d1e530a 100644
--- a/share/qtcreator/debugger/python2/utils.py
+++ b/share/qtcreator/debugger-with-python2/utils.py
diff --git a/share/qtcreator/debugger/LICENSE.MIT b/share/qtcreator/debugger/LICENSE.MIT
new file mode 100644
index 00000000000..6dee3d0a7f9
--- /dev/null
+++ b/share/qtcreator/debugger/LICENSE.MIT
@@ -0,0 +1,20 @@
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py
index d61160eed3b..9699e518fe3 100644
--- a/share/qtcreator/debugger/gdbbridge.py
+++ b/share/qtcreator/debugger/gdbbridge.py
@@ -772,7 +772,7 @@ class Dumper(DumperBase):
def makeStdString(init):
# Works only for small allocators, but they are usually empty.
- gdb.execute('set $d=(std::string*)calloc(sizeof(std::string), 2)')
+ gdb.execute('set $d=(std::string*)calloc(2, sizeof(std::string))')
gdb.execute('call($d->basic_string("' + init +
'",*(std::allocator<char>*)(1+$d)))')
value = gdb.parse_and_eval('$d').dereference()
@@ -787,7 +787,7 @@ class Dumper(DumperBase):
h = self.hexencode(data)
#DumperBase.warn('DATA: %s' % h)
string = ''.join('\\x' + h[2 * i:2 * i + 2] for i in range(size))
- exp = '(%s*)memcpy(calloc(%d, 1), "%s", %d)' \
+ exp = '(%s*)memcpy(calloc(1, %d), "%s", %d)' \
% (value.type.name, size, string, size)
#DumperBase.warn('EXP: %s' % exp)
res = gdb.parse_and_eval(exp)
diff --git a/share/qtcreator/debugger/stdtypes.py b/share/qtcreator/debugger/stdtypes.py
index bc4bb84dcbb..dbe663ef631 100644
--- a/share/qtcreator/debugger/stdtypes.py
+++ b/share/qtcreator/debugger/stdtypes.py
@@ -909,7 +909,7 @@ def qedit__std__vector(d, value, data):
values = data.split(',')
n = len(values)
innerType = value.type[0].name
- cmd = "set $d = (%s*)calloc(sizeof(%s)*%s,1)" % (innerType, innerType, n)
+ cmd = "set $d = (%s*)calloc(%s,sizeof(%s))" % (innerType, n, innerType)
gdb.execute(cmd)
cmd = "set {void*[3]}%s = {$d, $d+%s, $d+%s}" % (value.address(), n, n)
gdb.execute(cmd)
diff --git a/share/qtcreator/debugger/visualize.py b/share/qtcreator/debugger/visualize.py
new file mode 100644
index 00000000000..578d3bb7050
--- /dev/null
+++ b/share/qtcreator/debugger/visualize.py
@@ -0,0 +1,86 @@
+# Copyright(C) 2006-2008, David Allouche, Jp Calderone, Itamar Shtull-Trauring
+# Copyright(C) 2006-2017, Johan Dahlin
+# Copyright(C) 2008, Olivier Grisel <olivier.grisel@ensta.org>
+# Copyright(C) 2008, David Glick
+# Copyright(C) 2013, Steven Maude
+# Copyright(C) 2013-2018, Peter Waller <p@pwaller.net>
+# Copyright(C) 2013, Lukas Graf <lukas.graf@4teamwork.ch>
+# Copyright(C) 2013, Jamie Wong <http://jamie-wong.com>
+# Copyright(C) 2013, Yury V. Zaytsev <yury@shurup.com>
+# Copyright(C) 2014, Michael Droettboom <mdroe@stsci.edu>
+# Copyright(C) 2015, Zev Benjamin <zev@mit.edu>
+# Copyright(C) 2018, Jon Dufresne <jon.dufresne@gmail.com>
+#
+# All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+""" This is a stripped down and modified version of pyprof2calltree """
+
+def profile_visualize(entries):
+ import cProfile
+ import io
+ import subprocess
+ import tempfile
+ from collections import defaultdict
+
+ def add_code_by_position(code):
+ filename, _, name = cProfile.label(code)
+ code_by_position[(filename, name)].add(code)
+
+ def munged_function_name(code):
+ filename, firstlineno, name = cProfile.label(code)
+ if len(code_by_position[(filename, name)]) == 1:
+ return name
+ return "%s:%d" % (name, firstlineno)
+
+ code_by_position = defaultdict(set)
+ for entry in entries:
+ add_code_by_position(entry.code)
+ if entry.calls:
+ for subentry in entry.calls:
+ add_code_by_position(subentry.code)
+
+ fd, outfile = tempfile.mkstemp("-qtc-debugger-profile.txt")
+ with io.open(fd, "w") as out:
+ scale = 1e9
+
+ out.write('event: ns : Nanoseconds\n')
+ out.write('events: ns\n')
+
+ for entry in entries:
+ code = entry.code
+
+ filename, firstlineno, name = cProfile.label(code)
+ munged_name = munged_function_name(code)
+
+ out.write('fl=%s\nfn=%s\n' % (filename, munged_name))
+ out.write('%d %d\n' % (firstlineno, int(entry.inlinetime * scale)))
+
+ if entry.calls:
+ for subentry in entry.calls:
+ filename, firstlineno, name = cProfile.label(subentry.code)
+ munged_name = munged_function_name(subentry.code)
+ out.write('cfl=%s\ncfn=%s\n' % (filename, munged_name))
+ out.write('calls=%d %d\n' % (subentry.callcount, firstlineno))
+ out.write('%d %d\n' % (firstlineno, int(subentry.totaltime * scale)))
+ out.write('\n')
+
+ subprocess.Popen(["kcachegrind", outfile])
+
diff --git a/share/qtcreator/qmldesigner/EasingCurves.ini b/share/qtcreator/qmldesigner/EasingCurves.ini
new file mode 100644
index 00000000000..4e7a5b3ab11
--- /dev/null
+++ b/share/qtcreator/qmldesigner/EasingCurves.ini
@@ -0,0 +1,2 @@
+[General]
+EasingCurveList=@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\f\0l\0i\0n\0\x65\0\x61\0r-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xc9\x99\x99\x99\x99\x99\x9a?\xc9\x99\x99\x99\x99\x99\x9a?\xe9\x99\x99\x99\x99\x99\x9a?\xe9\x99\x99\x99\x99\x99\x9a?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x14\0\x65\0\x61\0s\0\x65\0I\0n\0S\0i\0n\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xde\x14z\xe1G\xae\x14\0\0\0\0\0\0\0\0?\xe7\xd7\n=p\xa3\xd7?\xe6\xe1G\xae\x14z\xe1?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0O\0u\0t\0S\0i\0n\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xd8\xf5\xc2\x8f\\(\xf6?\xe2\x66\x66\x66\x66\x66\x66?\xe2\x14z\xe1G\xae\x14?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0S\0i\0n\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xdcz\xe1G\xae\x14{?\xa9\x99\x99\x99\x99\x99\x9a?\xe1\x99\x99\x99\x99\x99\x9a?\xee\x66\x66\x66\x66\x66\x66?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x14\0\x65\0\x61\0s\0\x65\0I\0n\0Q\0u\0\x61\0\x64-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe1\x99\x99\x99\x99\x99\x9a?\xb5\xc2\x8f\\(\xf5\xc3?\xe5\xc2\x8f\\(\xf5\xc3?\xe0\xf5\xc2\x8f\\(\xf6?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0O\0u\0t\0Q\0u\0\x61\0\x64-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xd0\0\0\0\0\0\0?\xddp\xa3\xd7\n=q?\xdc\xcc\xcc\xcc\xcc\xcc\xcd?\xee\x14z\xe1G\xae\x14?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0Q\0u\0\x61\0\x64-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xdd\x1e\xb8Q\xeb\x85\x1f?\x9e\xb8Q\xeb\x85\x1e\xb8?\xe0z\xe1G\xae\x14{?\xee\x8f\\(\xf5\xc2\x8f?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0I\0n\0\x43\0u\0\x62\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe1\x99\x99\x99\x99\x99\x9a?\xac(\xf5\xc2\x8f\\)?\xe5\x99\x99\x99\x99\x99\x9a?\xc8Q\xeb\x85\x1e\xb8R?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x18\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x43\0u\0\x62\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xcb\x85\x1e\xb8Q\xeb\x85?\xe3\x85\x1e\xb8Q\xeb\x85?\xd6\xb8Q\xeb\x85\x1e\xb8?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1c\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x43\0u\0\x62\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe4\xa3\xd7\n=p\xa4?\xa7\n=p\xa3\xd7\n?\xd6\xb8Q\xeb\x85\x1e\xb8?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0I\0n\0Q\0u\0\x61\0r\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xec\xa3\xd7\n=p\xa4?\x9e\xb8Q\xeb\x85\x1e\xb8?\xe5\xeb\x85\x1e\xb8Q\xec?\xcc(\xf5\xc2\x8f\\)?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x18\0\x65\0\x61\0s\0\x65\0O\0u\0t\0Q\0u\0\x61\0r\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xc5\x1e\xb8Q\xeb\x85\x1f?\xea\xe1G\xae\x14z\xe1?\xdc(\xf5\xc2\x8f\\)?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1c\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0Q\0u\0\x61\0r\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe8\xa3\xd7\n=p\xa4\0\0\0\0\0\0\0\0?\xc6\x66\x66\x66\x66\x66\x66?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0I\0n\0Q\0u\0i\0n\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe8(\xf5\xc2\x8f\\)?\xa9\x99\x99\x99\x99\x99\x9a?\xeb\\(\xf5\xc2\x8f\\?\xae\xb8Q\xeb\x85\x1e\xb8?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x18\0\x65\0\x61\0s\0\x65\0O\0u\0t\0Q\0u\0i\0n\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xcdp\xa3\xd7\n=q?\xf0\0\0\0\0\0\0?\xd4z\xe1G\xae\x14{?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1c\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0Q\0u\0i\0n\0t-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xeb\x85\x1e\xb8Q\xeb\x85\0\0\0\0\0\0\0\0?\xb1\xeb\x85\x1e\xb8Q\xec?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x14\0\x65\0\x61\0s\0\x65\0I\0n\0\x45\0x\0p\0o-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xee\x66\x66\x66\x66\x66\x66?\xa9\x99\x99\x99\x99\x99\x9a?\xe9p\xa3\xd7\n=q?\xa1\xeb\x85\x1e\xb8Q\xec?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x45\0x\0p\0o-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xc8Q\xeb\x85\x1e\xb8R?\xf0\0\0\0\0\0\0?\xcc(\xf5\xc2\x8f\\)?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x45\0x\0p\0o-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x14\0\x65\0\x61\0s\0\x65\0I\0n\0\x43\0i\0r\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe3\x33\x33\x33\x33\x33\x33?\xa4z\xe1G\xae\x14{?\xef\\(\xf5\xc2\x8f\\?\xd5p\xa3\xd7\n=q?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x43\0i\0r\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xb3\x33\x33\x33\x33\x33\x33?\xea=p\xa3\xd7\n=?\xc5\x1e\xb8Q\xeb\x85\x1f?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x43\0i\0r\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe9\x1e\xb8Q\xeb\x85\x1f?\xc1G\xae\x14z\xe1H?\xc3\x33\x33\x33\x33\x33\x33?\xeb\x85\x1e\xb8Q\xeb\x85?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x14\0\x65\0\x61\0s\0\x65\0I\0n\0\x42\0\x61\0\x63\0k-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe3\x33\x33\x33\x33\x33\x33\xbf\xd1\xeb\x85\x1e\xb8Q\xec?\xe7\x85\x1e\xb8Q\xeb\x85?\xa7\n=p\xa3\xd7\n?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x16\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x42\0\x61\0\x63\0k-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xc6\x66\x66\x66\x66\x66\x66?\xecQ\xeb\x85\x1e\xb8R?\xd4z\xe1G\xae\x14{?\xf4Q\xeb\x85\x1e\xb8R?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x42\0\x61\0\x63\0k-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x3?\xe5\xc2\x8f\\(\xf5\xc3\xbf\xe1\x99\x99\x99\x99\x99\x9a?\xd0\xf5\xc2\x8f\\(\xf6?\xf8\xcc\xcc\xcc\xcc\xcc\xcd?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0I\0n\0\x45\0l\0\x61\0s\0t\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\xf?\xd0r\xb0 \xc4\x9b\xa6\xbf~do\x15\x61\x91\x15?\xd6\x66\x66\x66\x66\x66\x66?\xac\x9e\xec\xbf\xb1[W?\xdcj~\xf9\xdb\"\xd1?\xaaxl\"h\t\xd5?\xe1\xeV\x4\x18\x93u?\xab\x98\xc7\xe2\x82@\xb8?\xe3\\(\xf5\xc2\x8f\\\xbf\x90\x96\xbb\x98\xc7\xe2\x82?\xe5\x6$\xdd/\x1a\xa0\xbf\x9b\xc0\x1a\x36\xe2\xeb\x1c?\xe7\xb6\x45\xa1\xca\xc0\x83\xbf\x88*\x99\x30\xbe\r\xed?\xe7t\xbcj~\xf9\xdb?\xbf\xbev\xc8\xb4\x39X?\xe8\xd4\xfd\xf3\xb6\x45\xa2?\xc5\x81\x6$\xdd/\x1b?\xea=p\xa3\xd7\n=?\xc0\xc4\x9b\xa5\xe3S\xf8?\xea\xf1\xa9\xfb\xe7l\x8b\xbf\xa6\xd5\xcf\xaa\xcd\x9e\x84?\xec(\xf5\xc2\x8f\\)\xbf\xb5\x81\x6$\xdd/\x1b?\xed/\x1a\x9f\xbev\xc9\xbf\xa4\x95\x18*\x99\x30\xbe?\xee\x8f\\(\xf5\xc2\x8f?\xdb\xa5\xe3S\xf7\xce\xd9?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1c\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x45\0l\0\x61\0s\0t\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\xf?\xa3\xdd\x97\xf6+j\xe8?\xdc\xed\x91hr\xb0!?\xa0\x62M\xd2\xf1\xa9\xfc?\xf2\x66\x66\x66\x66\x66\x66?\xb0'RT`\xaa\x65?\xf3\x85\x1e\xb8Q\xeb\x85?\xbc\xac\b1&\xe9y?\xf2\x66\x66\x66\x66\x66\x66?\xc2\xd7\x93\xac\xbaY\x1e?\xec\x8c ]\x1a\x1\xf0?\xc8\xba\xe7\xa4\x89\x32\x35?\xeb}\xcaY\x1n{?\xce;\xed\xc9\x66\x61O?\xec\xf6\x9fV\xf5$\xc1?\xd3\x43\x95\x81\x6$\xdd?\xf1G\xae\x14z\xe1H?\xd7K\xc6\xa7\xef\x9d\xb2?\xf0\xa3\xd7\n=p\xa4?\xdc\xcc\xcc\xcc\xcc\xcc\xcd?\xee\x14z\xe1G\xae\x14?\xe4Z\x1c\xac\b1'?\xef\xe7l\x8b\x43\x95\x81?\xe5\xd2\xf1\xa9\xfb\xe7m?\xf0Q\xeb\x85\x1e\xb8R?\xe7\xdf;dZ\x1c\xac?\xf0\xa3\xd7\n=p\xa4?\xe8\xcc\xcc\xcc\xcc\xcc\xcd?\xef\xae\x14z\xe1G\xae?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0 \0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x45\0l\0\x61\0s\0t\0i\0\x63-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x15?\xacPH\x16\xf0\x6\x8e?\xa3\xb6\x45\xa1\xca\xc0\x83?\xb4`\xaa\x64\xc2\xf8\x38\xbf\xa3\x81\xd7\xdb\xf4\x87\xfd?\xbb\xe7l\x8b\x43\x95\x81\xbf\xa3\x81\xd7\xdb\xf4\x87\xfd?\xc1\xa9\xfb\xe7l\x8b\x44\xbf\xa3\x81\xd7\xdb\xf4\x87\xfd?\xc7\xae\x14z\xe1G\xae?\x9c\x43,\xa5zxl?\xccj~\xf9\xdb\"\xd1?l\xea\xf2Q\xc1\x93\xb4?\xd0\x93t\xbcj~\xfa\xbf\x94\xfd\xf3\xb6\x45\xa1\xcb?\xd5?|\xed\x91hs\xbf\xd0\0\0\0\0\0\0?\xd8\xa3\xd7\n=p\xa4\xbf\xd0 \xc4\x9b\xa5\xe3T?\xdd\x91hr\xb0 \xc5\xbf\xc1\xeb\x85\x1e\xb8Q\xec?\xe1`A\x89\x37K\xc7?\xf2\xe1G\xae\x14z\xe1?\xe3\xbev\xc8\xb4\x39X?\xf3\xd7\n=p\xa3\xd7?\xe5\xa1\xca\xc0\x83\x12o?\xf3\xd7\n=p\xa3\xd7?\xe7\x9d\xb2-\xeV\x4?\xf0\0\0\0\0\0\0?\xe8\xe5`A\x89\x37L?\xef\x43\x95\x81\x6$\xdd?\xea$\xdd/\x1a\x9f\xbe?\xee~\xf9\xdb\"\xd0\xe5?\xeb\\(\xf5\xc2\x8f\\?\xf0Q\xeb\x85\x1e\xb8R?\xecr\xb0 \xc4\x9b\xa6?\xf0z\xe1G\xae\x14{?\xed\x91hr\xb0 \xc5?\xf0z\xe1G\xae\x14{?\xeen\x97\x8dO\xdf;?\xee\xd9\x16\x87+\x2\f?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", @Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x18\0\x65\0\x61\0s\0\x65\0I\0n\0\x42\0o\0u\0n\0\x63\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\xf?\xb1\xe4\xf7\x65\xfd\x8a\xdb?U\xf4^\vN\x11\xdc?\xb5\xa1\xca\xc0\x83\x12o?\xb3\xf1\x41 [\xc0\x1a?\xbc\xac\b1&\xe9y?\xb3\xf1\x41 [\xc0\x1a?\xc1\xca\xc0\x83\x12n\x98?\xb3\xf1\x41 [\xc0\x1a?\xc7l\x8b\x43\x95\x81\x6\xbful\roTK\xb2?\xcc\xac\b1&\xe9y\xbful\roTK\xb2?\xd1\x6$\xdd/\x1a\xa0\xbful\roTK\xb2?\xd4\xdd/\x1a\x9f\xbew?\xd0\x31&\xe9x\xd4\xfe?\xd8\xc4\x9b\xa5\xe3S\xf8?\xd0\x31&\xe9x\xd4\xfe?\xdc\xbcj~\xf9\xdb#?\xd0\x31&\xe9x\xd4\xfe?\xdf|\xed\x91hr\xb0?U\xf4^\vN\x11\xdc?\xe3\x2\fI\xba^5\xbfh\xe7W\x92\x8e\f\x9e?\xe6\x45\xa1\xca\xc0\x83\x12\xbf~do\x15\x61\x91\x15?\xe8\x8b\x43\x95\x81\x6%?\xe9\x99\x99\x99\x99\x99\x9a?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0), "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1a\0\x65\0\x61\0s\0\x65\0O\0u\0t\0\x42\0o\0u\0n\0\x63\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\xf?\xcd\xd2\xf1\xa9\xfb\xe7m?\xc4\x9b\xa5\xe3S\xf7\xcf?\xd0\xe5`A\x89\x37L?\xef\xe7l\x8b\x43\x95\x81?\xd9&\xe9x\xd4\xfd\xf4?\xef\xe7l\x8b\x43\x95\x81?\xe0\xb4\x39X\x10\x62N?\xef\xe7l\x8b\x43\x95\x81?\xe1\xc2\x8f\\(\xf5\xc3?\xe8\x10\x62M\xd2\xf1\xaa?\xe3\x85\x1e\xb8Q\xeb\x85?\xe8\0\0\0\0\0\0?\xe5?|\xed\x91hs?\xe7\xef\x9d\xb2-\xeV?\xe7\x8dO\xdf;dZ?\xf0\0\0\0\0\0\0?\xe8\xcc\xcc\xcc\xcc\xcc\xcd?\xf0\0\0\0\0\0\0?\xea\fI\xba^5??\xef\xf7\xce\xd9\x16\x87+?\xeb\x8dO\xdf;dZ?\xec\xd4\xfd\xf3\xb6\x45\xa2?\xecj~\xf9\xdb\"\xd1?\xec\xd4\xfd\xf3\xb6\x45\xa2?\xedO\xdf;dZ\x1d?\xec\xd4\xfd\xf3\xb6\x45\xa2?\xed\x89\x37K\xc6\xa7\xf0?\xef\xd7\n=p\xa3\xd7?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)", "@Variant(\0\0\0\x7f\0\0\0\x1eQmlDesigner::NamedEasingCurve\0\0\0\0\x1e\0\x65\0\x61\0s\0\x65\0I\0n\0O\0u\0t\0\x42\0o\0u\0n\0\x63\0\x65-\0\0\0\0\0\0\0\0\x1?\xd3\x33\x33\x33\x33\x33\x33?\xf0\0\0\0\0\0\0?\xfb\x39\xab\xf3\x38qa\0\0\0\x1e?\xa8\xd4\xfd\xf3\xb6\x45\xa2?wc^t)\x9d\x88?\xaeOv_\xd8\xad\xac?\xa5\xf6\xfd!\xff.I?\xb5\xdc\xc6?\x14\x12\x6?\xa7\x17X\xe2\x19\x65,?\xbcj~\xf9\xdb\"\xd1?\xa8\x37\xb4\xa2\x33\x9c\xf?\xbd/\x1a\x9f\xbev\xc9\xbfh\xe7W\x92\x8e\f\x9e?\xc3t\xbcj~\xf9\xdb\xbfh\xe7W\x92\x8e\f\x9e?\xc8Q\xeb\x85\x1e\xb8R\xbfh\xe7W\x92\x8e\f\x9e?\xcb\x64Z\x1c\xac\b1?\xbf|\xed\x91hr\xb0?\xcf|\xed\x91hr\xb0?\xbf\xbev\xc8\xb4\x39X?\xd1\xdb\"\xd0\xe5`B?\xc0\0\0\0\0\0\0?\xd3\x12n\x97\x8dO\xdf?l\xea\xf2Q\xc1\x93\xb4?\xd6\x87+\x2\fI\xba?l\xea\xf2Q\xc1\x93\xb4?\xd9\xfb\xe7l\x8b\x43\x96?l\xea\xf2Q\xc1\x93\xb4?\xdd\xeV\x4\x18\x93u?\xdd`A\x89\x37K\xc7?\xe0(\xf5\xc2\x8f\\)?\xdf\xdf;dZ\x1c\xac?\xe1\xca\xc0\x83\x12n\x98?\xe1/\x1a\x9f\xbev\xc9?\xe1\xb2-\xeV\x4\x19?\xf0\0\0\0\0\0\0?\xe4\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xe6M\xd2\xf1\xa9\xfb\xe7?\xf0\0\0\0\0\0\0?\xe6\xf1\xa9\xfb\xe7l\x8b?\xeb\xd7\n=p\xa3\xd7?\xe7\xf7\xce\xd9\x16\x87+?\xeb\xd7\n=p\xa3\xd7?\xe8\xfd\xf3\xb6\x45\xa1\xcb?\xeb\xd7\n=p\xa3\xd7?\xea\x45\xa1\xca\xc0\x83\x12?\xef\xe7l\x8b\x43\x95\x81?\xeb\x85\x1e\xb8Q\xeb\x85?\xef\xe7l\x8b\x43\x95\x81?\xec\xc4\x9b\xa5\xe3S\xf8?\xef\xdf;dZ\x1c\xac?\xec\xc4\x9b\xa5\xe3S\xf8?\xed\xe3S\xf7\xce\xd9\x17?\xed\x89\x37K\xc6\xa7\xf0?\xed\xe3S\xf7\xce\xd9\x17?\xee\x45\xa1\xca\xc0\x83\x12?\xed\xe3S\xf7\xce\xd9\x17?\xee\xb0 \xc4\x9b\xa5\xe3?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0?\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0)"
diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml
index cfa40209950..26bef6f8e91 100644
--- a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml
+++ b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml
@@ -94,7 +94,7 @@ Item {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: {
- if (assetsModel.haveFiles) {
+ if (assetsModel.hasFiles) {
function onFolderCreated(path) {
assetsView.addCreatedFolder(path)
}
@@ -182,13 +182,13 @@ Item {
leftPadding: 10
color: StudioTheme.Values.themeTextColor
font.pixelSize: StudioTheme.Values.baseFont
- visible: !assetsModel.haveFiles && !root.__searchBoxEmpty
+ visible: !assetsModel.hasFiles && !root.__searchBoxEmpty
}
Item { // placeholder when the assets library is empty
width: parent.width
height: parent.height - toolbar.height - column.spacing
- visible: !assetsModel.haveFiles && root.__searchBoxEmpty
+ visible: !assetsModel.hasFiles && root.__searchBoxEmpty
clip: true
MouseArea { // right clicking the empty area of the view
diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml
index 391c6220481..a8eb5285f57 100644
--- a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml
+++ b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsContextMenu.qml
@@ -83,7 +83,7 @@ StudioControls.Menu {
root.__selectedAssetPathsList = selectedAssetPathsList
root.__fileIndex = fileIndex
root.__dirIndex = dirModelIndex
- root.__dirPath = AssetsLibraryBackend.assetsModel.filePath(dirModelIndex)
+ root.__dirPath = root.assetsModel.filePath(dirModelIndex)
root.__isDirectory = false
root.popup()
}
@@ -124,9 +124,9 @@ StudioControls.Menu {
id: addTexturesItem
text: qsTr("Add Texture")
enabled: rootView.hasMaterialLibrary
- visible: root.__fileIndex && AssetsLibraryBackend.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList)
+ visible: root.__fileIndex && root.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList)
height: addTexturesItem.visible ? addTexturesItem.implicitHeight : 0
- onTriggered: AssetsLibraryBackend.rootView.addTextures(root.__selectedAssetPathsList)
+ onTriggered: root.rootView.addTextures(root.__selectedAssetPathsList)
}
StudioControls.MenuItem {
@@ -134,7 +134,7 @@ StudioControls.Menu {
text: qsTr("Add Light Probe")
enabled: rootView.hasMaterialLibrary && rootView.hasSceneEnv
visible: root.__fileIndex && root.__selectedAssetPathsList.length === 1
- && AssetsLibraryBackend.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList)
+ && root.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList)
height: addLightProbes.visible ? addLightProbes.implicitHeight : 0
onTriggered: rootView.addLightProbe(root.__selectedAssetPathsList[0])
}
@@ -145,7 +145,7 @@ StudioControls.Menu {
visible: root.__fileIndex
height: deleteFileItem.visible ? deleteFileItem.implicitHeight : 0
onTriggered: {
- let deleted = AssetsLibraryBackend.assetsModel.requestDeleteFiles(root.__selectedAssetPathsList)
+ let deleted = root.assetsModel.requestDeleteFiles(root.__selectedAssetPathsList)
if (!deleted)
confirmDeleteFiles.open()
}
@@ -182,7 +182,7 @@ StudioControls.Menu {
StudioControls.MenuItem {
text: qsTr("New Folder")
- visible: AssetsLibraryBackend.assetsModel.haveFiles
+ visible: root.assetsModel.hasFiles
height: visible ? implicitHeight : 0
NewFolderDialog {
@@ -209,11 +209,11 @@ StudioControls.Menu {
}
onTriggered: {
- if (!AssetsLibraryBackend.assetsModel.hasChildren(root.__dirIndex)) {
+ if (!root.assetsModel.hasChildren(root.__dirIndex)) {
// NOTE: the folder may still not be empty -- it doesn't have files visible to the
// user, but that doesn't mean that there are no other files (e.g. files of unknown
// types) on disk in this directory.
- AssetsLibraryBackend.assetsModel.deleteFolderRecursively(root.__dirIndex)
+ root.assetsModel.deleteFolderRecursively(root.__dirIndex)
} else {
confirmDeleteFolderDialog.open()
}
@@ -222,7 +222,7 @@ StudioControls.Menu {
StudioControls.MenuItem {
text: qsTr("New Effect")
- visible: rootView.canCreateEffects()
+ visible: root.rootView.canCreateEffects()
height: visible ? implicitHeight : 0
NewEffectDialog {
@@ -235,15 +235,22 @@ StudioControls.Menu {
}
StudioControls.MenuItem {
- text: rootView.showInGraphicalShellMsg()
+ text: root.rootView.showInGraphicalShellMsg()
enabled: root.__showInGraphicalShellEnabled
onTriggered: {
if (!root.__fileIndex || root.__selectedAssetPathsList.length > 1)
- rootView.showInGraphicalShell(root.__dirPath)
+ root.rootView.showInGraphicalShell(root.__dirPath)
else
- rootView.showInGraphicalShell(root.__selectedAssetPathsList[0])
+ root.rootView.showInGraphicalShell(root.__selectedAssetPathsList[0])
}
}
+
+ StudioControls.MenuItem {
+ text: qsTr("Add to Content Library")
+ visible: root.rootView.userBundleEnabled() && root.__fileIndex && root.assetsModel.allFilePathsAreTextures(root.__selectedAssetPathsList)
+ height: visible ? implicitHeight : 0
+ onTriggered: root.rootView.addAssetsToContentLibrary(root.__selectedAssetPathsList)
+ }
}
diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsView.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsView.qml
index 9326e6a5e35..aeabc92c6d4 100644
--- a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsView.qml
+++ b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetsView.qml
@@ -70,9 +70,9 @@ TreeView {
model: assetsModel
onRowsChanged: {
- if (root.rows > root.rootPathRow + 1 && !assetsModel.haveFiles ||
- root.rows <= root.rootPathRow + 1 && assetsModel.haveFiles) {
- assetsModel.syncHaveFiles()
+ if (root.rows > root.rootPathRow + 1 && !assetsModel.hasFiles ||
+ root.rows <= root.rootPathRow + 1 && assetsModel.hasFiles) {
+ assetsModel.syncHasFiles()
}
root.updateRows()
@@ -366,7 +366,7 @@ TreeView {
function moveSelection(amount)
{
- if (!assetsModel.haveFiles || !amount)
+ if (!assetsModel.hasFiles || !amount)
return
let index = root.currentFilePath ? assetsModel.indexForPath(root.currentFilePath)
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml
index d3285462609..fd969382e63 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml
@@ -91,6 +91,21 @@ Item {
realStepSize: 1.0
decimals: 6
trailingZeroes: false
+
+ onActiveFocusChanged: {
+ if (realField.activeFocus)
+ realField.contentItem.focus = true
+ }
+
+ textFromValue: function (value, locale) {
+ locale.numberOptions = Locale.OmitGroupSeparator
+ var decimals = realField.trailingZeroes ? realField.decimals : decimalCounter(realField.realValue)
+ if (decimals > 0) {
+ var text = Number(realField.realValue).toLocaleString(locale, 'f', decimals + 1)
+ return text.substring(0, text.length - 1)
+ }
+ return Number(realField.realValue).toLocaleString(locale, 'f', decimals)
+ }
}
}
}
@@ -112,6 +127,11 @@ Item {
from: -2147483647
to: 2147483647
decimals: 0
+
+ onActiveFocusChanged: {
+ if (integerField.activeFocus)
+ integerField.contentItem.focus = true
+ }
}
}
}
@@ -163,6 +183,14 @@ Item {
editorLoader.changesAccepted = false
editorPopup.close()
}
+
+ function onReturnPressed() {
+ editorPopup.close()
+ }
+
+ function onEnterPressed() {
+ editorPopup.close()
+ }
}
}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml
index 0c8fcd5b989..e7997f7eae6 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml
@@ -8,6 +8,7 @@ import Qt.labs.platform as PlatformWidgets
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
+import CollectionDetails
import CollectionEditorBackend
Rectangle {
@@ -28,6 +29,11 @@ Rectangle {
root.model.insertRow(root.model.rowCount())
}
+ function closeDialogs() {
+ addColumnDialog.reject()
+ fileDialog.reject()
+ }
+
RowLayout {
id: container
@@ -45,22 +51,28 @@ Rectangle {
spacing: StudioTheme.Values.sectionRowSpacing
IconButton {
+ id: addColumnLeftButton
+
buttonIcon: StudioTheme.Constants.addcolumnleft_medium
- tooltip: qsTr("Add property left")
+ tooltip: qsTr("Add column left")
enabled: root.model.selectedColumn > -1
onClicked: addColumnDialog.popUp(root.model.selectedColumn)
}
IconButton {
+ id: addColumnRightButton
+
buttonIcon: StudioTheme.Constants.addcolumnright_medium
- tooltip: qsTr("Add property right")
+ tooltip: qsTr("Add column right")
enabled: root.model.selectedColumn > -1
onClicked: addColumnDialog.popUp(root.model.selectedColumn + 1)
}
IconButton {
+ id: deleteColumnButton
+
buttonIcon: StudioTheme.Constants.deletecolumn_medium
- tooltip: qsTr("Delete selected property")
+ tooltip: qsTr("Delete selected column")
enabled: root.model.selectedColumn > -1
onClicked: root.model.removeColumn(root.model.selectedColumn)
}
@@ -71,20 +83,26 @@ Rectangle {
}
IconButton {
+ id: addRowBelowButton
+
buttonIcon: StudioTheme.Constants.addrowbelow_medium
- tooltip: qsTr("Insert row below")
+ tooltip: qsTr("Add row below")
enabled: root.model.selectedRow > -1
onClicked: root.model.insertRow(root.model.selectedRow + 1)
}
IconButton {
+ id: addRowAboveButton
+
buttonIcon: StudioTheme.Constants.addrowabove_medium
- tooltip: qsTr("Insert row above")
+ tooltip: qsTr("Add row above")
enabled: root.model.selectedRow > -1
onClicked: root.model.insertRow(root.model.selectedRow)
}
IconButton {
+ id: deleteSelectedRowButton
+
buttonIcon: StudioTheme.Constants.deleterow_medium
tooltip: qsTr("Delete selected row")
enabled: root.model.selectedRow > -1
@@ -100,13 +118,27 @@ Rectangle {
Layout.rightMargin: StudioTheme.Values.toolbarHorizontalMargin
IconButton {
+ id: saveCollectionButton
+
buttonIcon: StudioTheme.Constants.save_medium
tooltip: qsTr("Save changes")
- enabled: root.model.collectionName !== ""
+ enabled: root.model.collectionName !== "" && root.model.hasUnsavedChanges
onClicked: root.model.saveDataStoreCollections()
+
+ Rectangle {
+ width: StudioTheme.Values.smallStatusIndicatorDiameter
+ height: StudioTheme.Values.smallStatusIndicatorDiameter
+ radius: StudioTheme.Values.smallStatusIndicatorDiameter / 2
+ anchors.right: parent.right
+ anchors.top: parent.top
+ visible: root.model.hasUnsavedChanges
+ color: StudioTheme.Values.themeIconColorSelected
+ }
}
IconButton {
+ id: exportCollectionButton
+
buttonIcon: StudioTheme.Constants.export_medium
tooltip: qsTr("Export model")
enabled: root.model.collectionName !== ""
@@ -231,7 +263,9 @@ Rectangle {
Layout.fillWidth: true
- model: root.model.typesList()
+ model: CollectionDataTypeModel{}
+ textRole: "display"
+ tooltipRole: "toolTip"
actionIndicatorVisible: false
}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml
index 037f42fe638..2193bd1763e 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml
@@ -20,8 +20,20 @@ Rectangle {
implicitHeight: 400
color: StudioTheme.Values.themeControlBackground
+ function closeDialogs() {
+ editPropertyDialog.reject()
+ deleteColumnDialog.reject()
+ toolbar.closeDialogs()
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: tableView.model.deselectAll()
+ }
+
Column {
id: topRow
+ readonly property real maxAvailableHeight: root.height
visible: root.model.collectionName !== ""
width: parent.width
@@ -35,6 +47,11 @@ Rectangle {
}
GridLayout {
+ id: gridLayout
+ readonly property real maxAvailableHeight: topRow.maxAvailableHeight
+ - topRow.spacing
+ - toolbar.height
+
columns: 3
rowSpacing: 1
columnSpacing: 1
@@ -88,7 +105,8 @@ Rectangle {
id: topHeaderMouseArea
anchors.fill: parent
- anchors.margins: 5
+ anchors.leftMargin: StudioTheme.Values.borderHover
+ anchors.rightMargin: StudioTheme.Values.borderHover
acceptedButtons: Qt.LeftButton | Qt.RightButton
hoverEnabled: true
onClicked: (mouse) => {
@@ -143,12 +161,18 @@ Rectangle {
StudioControls.MenuItem {
text: qsTr("Sort Ascending")
- onTriggered: sortedModel.sort(headerMenu.clickedHeaderIndex, Qt.AscendingOrder)
+ onTriggered: {
+ tableView.closeEditor()
+ tableView.model.sort(headerMenu.clickedHeaderIndex, Qt.AscendingOrder)
+ }
}
StudioControls.MenuItem {
text: qsTr("Sort Descending")
- onTriggered: sortedModel.sort(headerMenu.clickedHeaderIndex, Qt.DescendingOrder)
+ onTriggered: {
+ tableView.closeEditor()
+ tableView.model.sort(headerMenu.clickedHeaderIndex, Qt.DescendingOrder)
+ }
}
}
}
@@ -170,7 +194,8 @@ Rectangle {
MouseArea {
anchors.fill: parent
- anchors.margins: 5
+ anchors.topMargin: StudioTheme.Values.borderHover
+ anchors.bottomMargin: StudioTheme.Values.borderHover
acceptedButtons: Qt.LeftButton
onClicked: tableView.model.selectRow(index)
}
@@ -183,15 +208,29 @@ Rectangle {
model: root.sortedModel
clip: true
- property point tableStart: tableTopLeftCorner.mapToItem(root, Qt.point(x, y));
+ readonly property real maxAvailableHeight: gridLayout.maxAvailableHeight
+ - addRowButton.height
+ - headerView.height
+ - (2 * gridLayout.rowSpacing)
+ readonly property real maxAvailableWidth: gridLayout.width
+ - StudioTheme.Values.collectionTableHorizontalMargin
+ - rowIdView.width
+ - addColumnButton.width
+ - gridLayout.columnSpacing
+
+ property real childrenWidth: tableView.contentItem.childrenRect.width
+ property real childrenHeight: tableView.contentItem.childrenRect.height
+
+ property int targetRow
+ property int targetColumn
Layout.alignment: Qt.AlignTop + Qt.AlignLeft
Layout.preferredWidth: tableView.contentWidth
Layout.preferredHeight: tableView.contentHeight
Layout.minimumWidth: 100
Layout.minimumHeight: 20
- Layout.maximumWidth: root.width - (tableStart.x + addColumnContainer.width)
- Layout.maximumHeight: root.height - (tableStart.y + addRowContainer.height)
+ Layout.maximumWidth: maxAvailableWidth
+ Layout.maximumHeight: maxAvailableHeight
columnWidthProvider: function(column) {
if (!isColumnLoaded(column))
@@ -211,6 +250,45 @@ Rectangle {
return Math.max(h, StudioTheme.Values.collectionCellMinimumHeight)
}
+ function ensureRowIsVisible(row) {
+ let rows = tableView.model.rowCount()
+ let rowIsLoaded = tableView.isRowLoaded(row)
+
+ if (row < 0 || row >= rows || rowIsLoaded) {
+ if (rowIsLoaded)
+ tableView.positionViewAtRow(row, Qt.AlignLeft | Qt.AlignTop)
+
+ tableView.targetRow = -1
+ return
+ }
+
+ tableView.targetRow = row
+ tableView.positionViewAtRow(row, Qt.AlignLeft | Qt.AlignTop)
+ ensureTimer.start()
+ }
+
+ function ensureColumnIsVisible(column) {
+ let columns = tableView.model.columnCount()
+ let columnIsLoaded = tableView.isColumnLoaded(column)
+
+ if (column < 0 || column >= columns || columnIsLoaded) {
+ if (columnIsLoaded)
+ tableView.positionViewAtColumn(column, Qt.AlignLeft | Qt.AlignTop)
+
+ tableView.targetColumn = -1
+ return
+ }
+
+ tableView.targetColumn = column
+ tableView.positionViewAtColumn(column, Qt.AlignLeft | Qt.AlignTop)
+ ensureTimer.start()
+ }
+
+ onMaxAvailableHeightChanged: resetSizeTimer.start()
+ onMaxAvailableWidthChanged: resetSizeTimer.start()
+ onChildrenWidthChanged: resetSizeTimer.start()
+ onChildrenHeightChanged: resetSizeTimer.start()
+
delegate: Rectangle {
id: itemCell
@@ -245,7 +323,7 @@ Rectangle {
let row = index % tableView.model.rowCount()
tableView.model.selectRow(row)
- cellContextMenu.popup()
+ cellContextMenu.showMenu(row)
}
}
@@ -260,7 +338,7 @@ Rectangle {
Text {
text: display ?? ""
color: itemSelected ? StudioTheme.Values.themeInteraction
- : StudioTheme.Values.themePlaceholderTextColorInteraction
+ : StudioTheme.Values.themeTextColor
leftPadding: 5
topPadding: 3
bottomPadding: 3
@@ -293,69 +371,70 @@ Rectangle {
top: itemCell.top
left: itemCell.left
}
+ Component.onCompleted: tableView.model.deselectAll()
}
+ }
- StudioControls.Menu {
- id: cellContextMenu
-
- width: 140
+ Timer {
+ id: resetSizeTimer
- StudioControls.MenuItem {
- HelperWidgets.IconLabel {
- icon: StudioTheme.Constants.addrowabove_medium
+ interval: 100
+ repeat: false
+ onTriggered: {
+ let cWidth = Math.min(tableView.maxAvailableWidth, tableView.childrenWidth)
+ let cHeight = Math.min(tableView.maxAvailableHeight, tableView.childrenHeight)
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.verticalCenter: parent.verticalCenter
+ if (tableView.contentWidth !== cWidth || tableView.contentHeight !== cHeight)
+ tableView.returnToBounds()
+ }
+ }
- Text {
- text: qsTr("Add row above")
- color: StudioTheme.Values.themeTextColor
- anchors.left: parent.right
- anchors.leftMargin: 10
- }
- }
+ Timer {
+ id: ensureTimer
- onTriggered: root.model.insertRow(root.model.selectedRow)
- }
+ interval: 100
+ repeat: false
+ onTriggered: {
+ tableView.ensureRowIsVisible(tableView.targetRow)
+ tableView.ensureColumnIsVisible(tableView.targetColumn)
+ }
+ }
- StudioControls.MenuItem {
- HelperWidgets.IconLabel {
- icon: StudioTheme.Constants.addrowabove_medium
+ Connections {
+ target: tableView.model
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.verticalCenter: parent.verticalCenter
+ function onModelReset() {
+ root.closeDialogs()
+ tableView.clearColumnWidths()
+ tableView.clearRowHeights()
+ }
- Text {
- text: qsTr("Add row below")
- color: StudioTheme.Values.themeTextColor
- anchors.left: parent.right
- anchors.leftMargin: 10
- }
- }
+ function onRowsInserted(parent, first, last) {
+ tableView.closeEditor()
+ tableView.model.selectRow(first)
+ tableView.ensureRowIsVisible(first)
+ }
- onTriggered: root.model.insertRow(root.model.selectedRow + 1)
- }
+ function onColumnsInserted(parent, first, last) {
+ tableView.closeEditor()
+ tableView.model.selectColumn(first)
+ tableView.ensureColumnIsVisible(first)
+ }
- StudioControls.MenuItem {
- HelperWidgets.IconLabel {
- icon: StudioTheme.Constants.addrowabove_medium
+ function onRowsRemoved(parent, first, last) {
+ let nextRow = first - 1
+ if (nextRow < 0 && tableView.model.rowCount(parent) > 0)
+ nextRow = 0
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.verticalCenter: parent.verticalCenter
+ tableView.model.selectRow(nextRow)
+ }
- Text {
- text: qsTr("Delete this row")
- color: StudioTheme.Values.themeTextColor
- anchors.left: parent.right
- anchors.leftMargin: 10
- }
- }
+ function onColumnsRemoved(parent, first, last) {
+ let nextColumn = first - 1
+ if (nextColumn < 0 && tableView.model.columnCount(parent) > 0)
+ nextColumn = 0
- onTriggered: root.model.removeRows(root.model.selectedRow, 1)
- }
+ tableView.model.selectColumn(nextColumn)
}
}
@@ -381,7 +460,7 @@ Rectangle {
}
HelperWidgets.IconButton {
- id: addColumnContainer
+ id: addColumnButton
iconSize:16
Layout.preferredWidth: 24
@@ -396,7 +475,7 @@ Rectangle {
}
HelperWidgets.IconButton {
- id: addRowContainer
+ id: addRowButton
iconSize:16
Layout.preferredWidth: tableView.width
@@ -417,10 +496,38 @@ Rectangle {
}
}
+ ColumnLayout {
+ id: importsProblem
+
+ visible: !topRow.visible && rootView.dataStoreExists && !rootView.projectImportExists
+ width: parent.width
+ anchors.verticalCenter: parent.verticalCenter
+ clip: true
+
+ Text {
+ text: qsTr("Import the project to your design document to make the Model Editor enabled.")
+ Layout.alignment: Qt.AlignCenter
+ Layout.maximumWidth: parent.width
+ leftPadding: StudioTheme.Values.collectionItemTextPadding
+ rightPadding: StudioTheme.Values.collectionItemTextPadding
+ color: StudioTheme.Values.themeTextColor
+ font.pixelSize: StudioTheme.Values.mediumFontSize
+ wrapMode: Text.Wrap
+ }
+
+ HelperWidgets.Button {
+ text: qsTr("Enable DataStore (This will add the required import)")
+ Layout.alignment: Qt.AlignCenter
+ onClicked: rootView.addProjectImport()
+ leftPadding: StudioTheme.Values.collectionItemTextPadding
+ rightPadding: StudioTheme.Values.collectionItemTextPadding
+ }
+ }
+
Text {
anchors.centerIn: parent
- text: qsTr("Select a model to continue")
- visible: !topRow.visible
+ text: qsTr("There are no models in this project.\nAdd or import a model.")
+ visible: !topRow.visible && !importsProblem.visible
color: StudioTheme.Values.themeTextColor
font.pixelSize: StudioTheme.Values.mediumFontSize
}
@@ -432,6 +539,41 @@ Rectangle {
text: "Xq"
}
+ StudioControls.Menu {
+ id: cellContextMenu
+
+ property int rowIndex: -1
+
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
+
+ function showMenu(rowIndex) {
+ cellContextMenu.rowIndex = rowIndex
+ cellContextMenu.popup()
+ }
+
+ CellContextMenuItem {
+ id: addRowAboveCellMenuItem
+
+ itemText: qsTr("Add row above")
+ itemIcon: StudioTheme.Constants.addrowabove_medium
+ onTriggered: root.model.insertRow(cellContextMenu.rowIndex)
+ }
+ CellContextMenuItem {
+ id: addRowBelowCellMenuItem
+
+ itemText: qsTr("Add row below")
+ itemIcon: StudioTheme.Constants.addrowbelow_medium
+ onTriggered: root.model.insertRow(cellContextMenu.rowIndex + 1)
+ }
+ CellContextMenuItem {
+ id: deleteRowCellMenuItem
+
+ itemText: qsTr("Delete row")
+ itemIcon: StudioTheme.Constants.deleterow_medium
+ onTriggered: root.model.removeRows(cellContextMenu.rowIndex, 1)
+ }
+ }
+
component HeaderDelegate: Rectangle {
id: headerItem
@@ -490,16 +632,54 @@ Rectangle {
]
}
+ component CellContextMenuItem: StudioControls.MenuItem {
+ id: cellContextMenuItemComponent
+
+ property alias itemText: cellContextMenuText.text
+ property alias itemIcon: cellContextMenuIcon.text
+ text: ""
+
+ implicitWidth: cellContextMenuRow.width
+ implicitHeight: cellContextMenuRow.height
+
+ Row {
+ id: cellContextMenuRow
+
+ property color textColor : cellContextMenuItemComponent.enabled
+ ? cellContextMenuItemComponent.highlighted
+ ? cellContextMenuItemComponent.style.text.selectedText
+ : cellContextMenuItemComponent.style.text.idle
+ : cellContextMenuItemComponent.style.text.disabled
+
+ spacing: 2 * StudioTheme.Values.contextMenuHorizontalPadding
+ height: StudioTheme.Values.defaultControlHeight
+ leftPadding: StudioTheme.Values.contextMenuHorizontalPadding
+ rightPadding: StudioTheme.Values.contextMenuHorizontalPadding
+
+ Text {
+ id: cellContextMenuIcon
+
+ color: cellContextMenuRow.textColor
+ text: StudioTheme.Constants.addrowabove_medium
+ font.family: StudioTheme.Constants.iconFont.family
+ font.pixelSize: StudioTheme.Values.myIconFontSize
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ Text {
+ id: cellContextMenuText
+
+ color: cellContextMenuRow.textColor
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+ }
+
EditPropertyDialog {
id: editPropertyDialog
model: root.model
}
- Connections {
- target: root.parent
- function onIsHorizontalChanged() { editPropertyDialog.close() }
- }
-
StudioControls.Dialog {
id: deleteColumnDialog
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml
index e5ba5a96e5e..d963070536f 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml
@@ -7,6 +7,7 @@ import QtQuick.Layouts
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme as StudioTheme
+import CollectionEditorBackend
Item {
id: root
@@ -15,11 +16,17 @@ Item {
implicitHeight: boundingRect.height + 3
property color textColor
- property string sourceType
- property bool hasSelectedTarget
+ readonly property string name: collectionName ?? ""
+ readonly property bool isSelected: collectionIsSelected
+ readonly property int id: index
+
+ function rename(newName) {
+ collectionName = newName
+ }
signal selectItem(int itemIndex)
signal deleteItem()
+ signal contextMenuRequested()
Item {
id: boundingRect
@@ -91,162 +98,12 @@ Item {
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton | Qt.LeftButton
- onClicked: collectionMenu.popup()
- }
- }
- }
- }
-
- StudioControls.Menu {
- id: collectionMenu
-
- closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
-
- StudioControls.MenuItem {
- text: qsTr("Delete")
- shortcut: StandardKey.Delete
- onTriggered: deleteDialog.open()
- }
-
- StudioControls.MenuItem {
- text: qsTr("Rename")
- shortcut: StandardKey.Replace
- onTriggered: renameDialog.open()
- }
-
- StudioControls.MenuItem {
- text: qsTr("Assign to the selected node")
- enabled: root.hasSelectedTarget
- onTriggered: rootView.assignCollectionToSelectedNode(collectionName)
- }
- }
-
- component Spacer: Item {
- implicitWidth: 1
- implicitHeight: StudioTheme.Values.columnGap
- }
-
- StudioControls.Dialog {
- id: deleteDialog
-
- title: qsTr("Deleting the model")
- clip: true
- implicitWidth: 300
-
- contentItem: ColumnLayout {
- spacing: 2
-
- Text {
- Layout.fillWidth: true
-
- wrapMode: Text.WordWrap
- color: StudioTheme.Values.themeTextColor
- text: {
- if (root.sourceType === "json") {
- qsTr("Are you sure that you want to delete model \"%1\"?"
- + "\nThe model will be deleted permanently.").arg(collectionName)
- } else if (root.sourceType === "csv") {
- qsTr("Are you sure that you want to delete model \"%1\"?"
- + "\nThe model will be removed from the project "
- + "but the file will not be deleted.").arg(collectionName)
- }
- }
- }
-
- Spacer {}
-
- RowLayout {
- spacing: StudioTheme.Values.sectionRowSpacing
- Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
-
- HelperWidgets.Button {
- text: qsTr("Delete")
- onClicked: root.deleteItem()
- }
-
- HelperWidgets.Button {
- text: qsTr("Cancel")
- onClicked: deleteDialog.reject()
- }
- }
- }
- }
-
- StudioControls.Dialog {
- id: renameDialog
-
- title: qsTr("Rename model")
-
- onAccepted: {
- if (newNameField.text !== "")
- collectionName = newNameField.text
- }
-
- onOpened: {
- newNameField.text = collectionName
- }
-
- contentItem: ColumnLayout {
- spacing: 2
-
- Text {
- text: qsTr("Previous name: " + collectionName)
- color: StudioTheme.Values.themeTextColor
- }
-
- Spacer {}
-
- Text {
- Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
- text: qsTr("New name:")
- color: StudioTheme.Values.themeTextColor
- }
-
- StudioControls.TextField {
- id: newNameField
-
- Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
- Layout.fillWidth: true
-
- actionIndicator.visible: false
- translationIndicator.visible: false
- validator: newNameValidator
-
- Keys.onEnterPressed: renameDialog.accept()
- Keys.onReturnPressed: renameDialog.accept()
- Keys.onEscapePressed: renameDialog.reject()
-
- onTextChanged: {
- btnRename.enabled = newNameField.text !== ""
- }
- }
-
- Spacer {}
-
- RowLayout {
- Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
- spacing: StudioTheme.Values.sectionRowSpacing
-
- HelperWidgets.Button {
- id: btnRename
-
- text: qsTr("Rename")
- onClicked: renameDialog.accept()
- }
-
- HelperWidgets.Button {
- text: qsTr("Cancel")
- onClicked: renameDialog.reject()
+ onClicked: contextMenuRequested()
}
}
}
}
- RegularExpressionValidator {
- id: newNameValidator
- regularExpression: /^\w+$/
- }
-
states: [
State {
name: "default"
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml
new file mode 100644
index 00000000000..2b95abfc4f4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml
@@ -0,0 +1,215 @@
+// Copyright (C) 2024 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.Controls
+import QtQuick.Layouts
+import HelperWidgets 2.0 as HelperWidgets
+import StudioControls 1.0 as StudioControls
+import StudioTheme as StudioTheme
+import CollectionEditorBackend
+
+ListView {
+ id: root
+
+ model: CollectionEditorBackend.model
+ clip: true
+
+ function closeDialogs() {
+ currentCollection.dereference()
+ collectionMenu.close()
+ deleteDialog.reject()
+ renameDialog.reject()
+ }
+
+ delegate: CollectionItem {
+ implicitWidth: root.width
+ onDeleteItem: root.model.removeRow(index)
+ onContextMenuRequested: collectionMenu.openMenu(this)
+ }
+
+ QtObject {
+ id: currentCollection
+
+ property CollectionItem item
+ readonly property string name: item ? item.name : ""
+ readonly property bool selected: item ? item.isSelected : false
+ readonly property int index: item ? item.id : -1
+
+ function rename(newName) {
+ if (item)
+ item.rename(newName)
+ }
+
+ function deleteItem() {
+ if (item)
+ item.deleteItem()
+ }
+
+ function dereference() {
+ item = null
+ }
+ }
+
+ StudioControls.Menu {
+ id: collectionMenu
+
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
+
+ function openMenu(item) {
+ currentCollection.item = item
+ popup()
+ }
+
+ StudioControls.MenuItem {
+ text: qsTr("Delete")
+ shortcut: StandardKey.Delete
+ onTriggered: deleteDialog.open()
+ }
+
+ StudioControls.MenuItem {
+ text: qsTr("Rename")
+ shortcut: StandardKey.Replace
+ onTriggered: renameDialog.open()
+ }
+
+ StudioControls.MenuItem {
+ text: qsTr("Assign to the selected node")
+ enabled: CollectionEditorBackend.rootView.targetNodeSelected
+ onTriggered: rootView.assignCollectionToSelectedNode(currentCollection.name)
+ }
+ }
+
+ StudioControls.Dialog {
+ id: deleteDialog
+
+ title: qsTr("Deleting the model")
+ clip: true
+
+ onAccepted: currentCollection.deleteItem()
+
+ contentItem: ColumnLayout {
+ id: deleteDialogContent // Keep the id here even if it's not used, because the dialog might lose implicitSize
+
+ width: 300
+ spacing: 2
+
+ Text {
+ Layout.fillWidth: true
+
+ wrapMode: Text.WordWrap
+ color: StudioTheme.Values.themeTextColor
+ text: qsTr("Are you sure that you want to delete model \"%1\"?"
+ + "\nThe model will be deleted permanently.").arg(currentCollection.name)
+
+ }
+
+ Spacer {}
+
+ RowLayout {
+ spacing: StudioTheme.Values.sectionRowSpacing
+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
+ Layout.fillWidth: true
+ Layout.preferredHeight: 40
+
+ HelperWidgets.Button {
+ text: qsTr("Delete")
+ onClicked: deleteDialog.accept()
+ }
+
+ HelperWidgets.Button {
+ text: qsTr("Cancel")
+ onClicked: deleteDialog.reject()
+ }
+ }
+ }
+ }
+
+ StudioControls.Dialog {
+ id: renameDialog
+
+ title: qsTr("Rename model")
+
+ onAccepted: {
+ if (newNameField.text !== "")
+ currentCollection.rename(newNameField.text)
+ }
+
+ onOpened: {
+ newNameField.text = currentCollection.name
+ }
+
+ contentItem: ColumnLayout {
+ spacing: 2
+
+ Text {
+ text: qsTr("Previous name: " + currentCollection.name)
+ color: StudioTheme.Values.themeTextColor
+ }
+
+ Spacer {}
+
+ Text {
+ Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
+ text: qsTr("New name:")
+ color: StudioTheme.Values.themeTextColor
+ }
+
+ StudioControls.TextField {
+ id: newNameField
+
+ Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
+ Layout.fillWidth: true
+
+ actionIndicator.visible: false
+ translationIndicator.visible: false
+ validator: newNameValidator
+
+ Keys.onEnterPressed: renameDialog.accept()
+ Keys.onReturnPressed: renameDialog.accept()
+ Keys.onEscapePressed: renameDialog.reject()
+
+ onTextChanged: {
+ btnRename.enabled = newNameField.text !== ""
+ }
+ }
+
+ Spacer {}
+
+ RowLayout {
+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
+ spacing: StudioTheme.Values.sectionRowSpacing
+
+ HelperWidgets.Button {
+ id: btnRename
+
+ text: qsTr("Rename")
+ onClicked: renameDialog.accept()
+ }
+
+ HelperWidgets.Button {
+ text: qsTr("Cancel")
+ onClicked: renameDialog.reject()
+ }
+ }
+ }
+ }
+
+ Connections {
+ target: root.model
+
+ function onModelReset() {
+ root.closeDialogs()
+ }
+ }
+
+ RegularExpressionValidator {
+ id: newNameValidator
+ regularExpression: /^\w+$/
+ }
+
+ component Spacer: Item {
+ implicitWidth: 1
+ implicitHeight: StudioTheme.Values.columnGap
+ }
+}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml
index 6b808d1ab26..9d483037ac8 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml
@@ -23,6 +23,17 @@ Item {
warningDialog.open()
}
+ // called from C++ when using the delete key
+ function deleteSelectedCollection() {
+ print("TODO: deleteSelectedCollection")
+ }
+
+ function closeDialogs() {
+ importDialog.reject()
+ newCollection.reject()
+ warningDialog.reject()
+ }
+
ImportDialog {
id: importDialog
@@ -33,8 +44,6 @@ Item {
NewCollectionDialog {
id: newCollection
- backendValue: root.rootView
- sourceModel: root.model
anchors.centerIn: parent
}
@@ -45,29 +54,78 @@ Item {
message: ""
}
- GridLayout {
- id: grid
- readonly property bool isHorizontal: width >= 500
+ Rectangle {
+ // Covers the toolbar color on top to prevent the background
+ // color for the margin of splitter
- columnSpacing: 0
- rowSpacing: 0
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: topToolbar.height
+ color: topToolbar.color
+ }
+
+ SplitView {
+ id: splitView
+
+ readonly property bool isHorizontal: splitView.orientation === Qt.Horizontal
+ orientation: width >= 500 ? Qt.Horizontal : Qt.Vertical
anchors.fill: parent
- columns: isHorizontal ? 3 : 1
+
+ onOrientationChanged: detailsView.closeDialogs()
+
+ handle: Item {
+ id: handleDelegate
+
+ property color color: SplitHandle.pressed ? StudioTheme.Values.themeControlOutlineInteraction
+ : SplitHandle.hovered ? StudioTheme.Values.themeControlOutlineHover
+ : StudioTheme.Values.themeControlOutline
+
+ implicitWidth: 1
+ implicitHeight: 1
+
+ Rectangle {
+ id: handleRect
+
+ property real verticalMargin: splitView.isHorizontal ? StudioTheme.Values.splitterMargin : 0
+ property real horizontalMargin: splitView.isHorizontal ? 0 : StudioTheme.Values.splitterMargin
+
+ anchors.fill: parent
+ anchors.topMargin: handleRect.verticalMargin
+ anchors.bottomMargin: handleRect.verticalMargin
+ anchors.leftMargin: handleRect.horizontalMargin
+ anchors.rightMargin: handleRect.horizontalMargin
+
+ color: handleDelegate.color
+ }
+
+ containmentMask: Item {
+ x: splitView.isHorizontal ? ((handleDelegate.width - width) / 2) : 0
+ y: splitView.isHorizontal ? 0 : ((handleDelegate.height - height) / 2)
+ height: splitView.isHorizontal ? handleDelegate.height : StudioTheme.Values.borderHover
+ width: splitView.isHorizontal ? StudioTheme.Values.borderHover : handleDelegate.width
+ }
+ }
ColumnLayout {
id: collectionsSideBar
spacing: 0
- Layout.alignment: Qt.AlignTop | Qt.AlignLeft
- Layout.minimumWidth: 300
- Layout.fillWidth: !grid.isHorizontal
+ SplitView.minimumWidth: 200
+ SplitView.maximumWidth: 450
+ SplitView.minimumHeight: 200
+ SplitView.maximumHeight: 400
+ SplitView.fillWidth: !splitView.isHorizontal
+ SplitView.fillHeight: splitView.isHorizontal
Rectangle {
+ id: topToolbar
color: StudioTheme.Values.themeToolbarBackground
Layout.preferredHeight: StudioTheme.Values.toolbarHeight
Layout.fillWidth: true
+ Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
Text {
anchors.verticalCenter: parent.verticalCenter
@@ -80,6 +138,8 @@ Item {
}
HelperWidgets.AbstractButton {
+ id: importCollectionButton
+
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
anchors.rightMargin: StudioTheme.Values.toolbarHorizontalMargin
@@ -92,32 +152,15 @@ Item {
}
}
- Rectangle { // Model Groups
- Layout.fillWidth: true
- color: StudioTheme.Values.themeBackgroundColorNormal
- Layout.minimumHeight: 150
- Layout.preferredHeight: sourceListView.contentHeight
-
- MouseArea {
- anchors.fill: parent
- propagateComposedEvents: true
- onClicked: (event) => {
- root.model.deselect()
- event.accepted = true
- }
- }
-
- ListView {
- id: sourceListView
-
- anchors.fill: parent
- model: root.model
+ CollectionListView { // Model Groups
+ id: collectionListView
- delegate: ModelSourceItem {
- implicitWidth: sourceListView.width
- hasSelectedTarget: root.rootView.targetNodeSelected
- }
- }
+ Layout.fillWidth: true
+ Layout.minimumHeight: bottomSpacer.isExpanded ? 150 : 0
+ Layout.fillHeight: !bottomSpacer.isExpanded
+ Layout.preferredHeight: contentHeight
+ Layout.maximumHeight: contentHeight
+ Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
}
HelperWidgets.IconButton {
@@ -132,22 +175,32 @@ Item {
icon: StudioTheme.Constants.create_medium
onClicked: newCollection.open()
}
- }
- Rectangle { // Splitter
- Layout.fillWidth: !grid.isHorizontal
- Layout.fillHeight: grid.isHorizontal
- Layout.minimumWidth: 2
- Layout.minimumHeight: 2
- color: "black"
+ Item {
+ id: bottomSpacer
+
+ readonly property bool isExpanded: height > 0
+ Layout.minimumWidth: 1
+ Layout.fillHeight: true
+ }
}
CollectionDetailsView {
+ id: detailsView
+
model: root.collectionDetailsModel
backend: root.model
sortedModel: root.collectionDetailsSortFilterModel
- Layout.fillHeight: true
- Layout.fillWidth: true
+ SplitView.fillHeight: true
+ SplitView.fillWidth: true
+ }
+ }
+
+ Connections {
+ target: root.model
+
+ function onModelReset() {
+ root.closeDialogs()
}
}
}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ColorViewDelegate.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/ColorViewDelegate.qml
index 1414a2dd3a2..16e55acfb43 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ColorViewDelegate.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/ColorViewDelegate.qml
@@ -16,19 +16,33 @@ Row {
property color color
property bool supportGradient: false
- readonly property color __editColor: edit
+
+ property QtObject backendValue: QtObject {
+ property color value: edit
+ readonly property color editColor: edit
+
+ function resetValue() {
+ if (value)
+ value = ""
+ }
+
+ onValueChanged: {
+ if (editColor !== value)
+ edit = value
+ }
+ }
property variant value: {
- if (!edit)
+ if (!colorEditor.backendValue || !colorEditor.backendValue.value)
return "white" // default color for Rectangle
if (colorEditor.isVector3D) {
- return Qt.rgba(__editColor.x,
- __editColor.y,
- __editColor.z, 1)
+ return Qt.rgba(colorEditor.backendValue.value.x,
+ colorEditor.backendValue.value.y,
+ colorEditor.backendValue.value.z, 1)
}
- return __editColor
+ return colorEditor.backendValue.value
}
property alias gradientPropertyName: popupDialog.gradientPropertyName
@@ -43,17 +57,16 @@ Row {
property bool __block: false
function resetShapeColor() {
- if (edit)
- edit = ""
+ colorEditor.backendValue.resetValue()
}
function writeColor() {
if (colorEditor.isVector3D) {
- edit = Qt.vector3d(colorEditor.color.r,
+ colorEditor.backendValue.value = Qt.vector3d(colorEditor.color.r,
colorEditor.color.g,
colorEditor.color.b)
} else {
- edit = colorEditor.color
+ colorEditor.backendValue.value = colorEditor.color
}
}
@@ -79,7 +92,7 @@ Row {
colorEditor.syncColor()
}
- function on__EditColorChanged() {
+ function onBackendValueChanged() {
if (popupDialog.isSolid())
colorEditor.syncColor()
}
@@ -195,16 +208,16 @@ Row {
if (colorEditor.supportGradient && popupDialog.loaderItem.gradientModel.hasGradient) {
var hexColor = convertColorToString(colorEditor.color)
hexTextField.text = hexColor
- edit = hexColor
+ colorEditor.backendValue.value = hexColor
popupDialog.loaderItem.commitGradientColor()
}
}
function isSolid() {
- if (!loader.active)
- return true
+ if (!loader.active)
+ return true
- return popupDialog.loaderItem.isSolid()
+ return popupDialog.loaderItem.isSolid()
}
function isLinearGradient(){
@@ -221,6 +234,7 @@ Row {
function open() {
popupDialog.ensureLoader()
+ popupDialog.loaderItem.initEditor()
popupDialog.show(preview)
}
@@ -278,5 +292,5 @@ Row {
Component.onCompleted: popupDialog.determineActiveColorMode()
- on__EditColorChanged: popupDialog.determineActiveColorMode()
+ onBackendValueChanged: popupDialog.determineActiveColorMode()
}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/EditPropertyDialog.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/EditPropertyDialog.qml
index 814778f2b77..546dc5d770c 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/EditPropertyDialog.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/EditPropertyDialog.qml
@@ -6,6 +6,7 @@ import QtQuick.Layouts
import StudioTheme 1.0 as StudioTheme
import StudioControls 1.0 as StudioControls
import HelperWidgets 2.0 as HelperWidgets
+import CollectionDetails
StudioControls.Dialog {
id: root
@@ -91,7 +92,9 @@ StudioControls.Dialog {
property string initialType
- model: root.model.typesList()
+ model: CollectionDataTypeModel{}
+ textRole: "display"
+ tooltipRole: "toolTip"
actionIndicatorVisible: false
}
}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ImportDialog.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/ImportDialog.qml
index 3f8108005cb..21a5e4e8e04 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ImportDialog.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/ImportDialog.qml
@@ -32,6 +32,11 @@ StudioControls.Dialog {
fileName.text = ""
}
+ function acceptIfIsValid() {
+ if (btnImport.enabled)
+ btnImport.onClicked()
+ }
+
RegularExpressionValidator {
id: fileNameValidator
regularExpression: /^(\w[^*><?|]*)[^/\\:*><?|]$/
@@ -67,6 +72,10 @@ StudioControls.Dialog {
contentItem: ColumnLayout {
spacing: 2
+ Keys.onEnterPressed: root.acceptIfIsValid()
+ Keys.onReturnPressed: root.acceptIfIsValid()
+ Keys.onEscapePressed: root.reject()
+
Text {
text: qsTr("File name")
color: StudioTheme.Values.themeTextColor
@@ -87,10 +96,6 @@ StudioControls.Dialog {
translationIndicator.visible: false
validator: fileNameValidator
- Keys.onEnterPressed: btnImport.onClicked()
- Keys.onReturnPressed: btnImport.onClicked()
- Keys.onEscapePressed: root.reject()
-
onTextChanged: root.fileExists = root.backendValue.isValidUrlToImport(fileName.text)
}
@@ -121,10 +126,6 @@ StudioControls.Dialog {
validator: RegularExpressionValidator {
regularExpression: /^[\w ]+$/
}
-
- Keys.onEnterPressed: btnImport.onClicked()
- Keys.onReturnPressed: btnImport.onClicked()
- Keys.onEscapePressed: root.reject()
}
Spacer { implicitHeight: StudioTheme.Values.controlLabelGap }
@@ -180,6 +181,17 @@ StudioControls.Dialog {
Spacer {}
+ StudioControls.CheckBox {
+ id: csvFirstRowIsHeader
+
+ visible: root.fileExists && fileName.text.endsWith(".csv")
+ text: qsTr("Consider first row as headers")
+ checked: true
+ actionIndicatorVisible: false
+ }
+
+ Spacer {}
+
RowLayout {
spacing: StudioTheme.Values.sectionRowSpacing
@@ -192,9 +204,10 @@ StudioControls.Dialog {
enabled: root.fileExists && collectionName.text !== ""
onClicked: {
- let collectionImported = root.backendValue.importCollectionToDataStore(
+ let collectionImported = root.backendValue.importFile(
collectionName.text,
- fileName.text)
+ fileName.text,
+ csvFirstRowIsHeader.checked)
if (collectionImported)
root.accept()
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ModelSourceItem.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/ModelSourceItem.qml
deleted file mode 100644
index 2678a36755b..00000000000
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/ModelSourceItem.qml
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2023 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.Controls
-import QtQuick.Layouts
-import HelperWidgets 2.0 as HelperWidgets
-import StudioControls 1.0 as StudioControls
-import StudioTheme as StudioTheme
-
-Item {
- id: root
-
- implicitWidth: 300
- implicitHeight: collectionListView.height
-
- property bool hasSelectedTarget
-
- ListView {
- id: collectionListView
-
- width: parent.width
- implicitHeight: contentHeight
- leftMargin: 6
-
- model: internalModels
- clip: true
-
- delegate: CollectionItem {
- width: collectionListView.width
- sourceType: collectionListView.model.sourceType
- hasSelectedTarget: root.hasSelectedTarget
- onDeleteItem: collectionListView.model.removeRow(index)
- }
- }
-}
diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/NewCollectionDialog.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/NewCollectionDialog.qml
index ec87bbb8729..6f567a775c6 100644
--- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/NewCollectionDialog.qml
+++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/NewCollectionDialog.qml
@@ -4,30 +4,24 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
-import Qt.labs.platform as PlatformWidgets
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
-import CollectionEditor
+import CollectionEditorBackend
StudioControls.Dialog {
id: root
- enum SourceType { NewJson, NewCsv, ExistingCollection }
+ property bool nameExists: false
+ readonly property bool isValid: collectionName.text !== "" && !root.nameExists
- required property var backendValue
- required property var sourceModel
+ title: qsTr("Add a new model")
- readonly property bool isValid: collectionName.isValid
-
- title: qsTr("Add a new Model")
- anchors.centerIn: parent
closePolicy: Popup.CloseOnEscape
modal: true
onOpened: {
- collectionName.text = qsTr("Model")
- updateCollectionExists()
+ collectionName.text = CollectionEditorBackend.model.getUniqueCollectionName()
}
onRejected: {
@@ -36,53 +30,21 @@ StudioControls.Dialog {
onAccepted: {
if (root.isValid)
- root.backendValue.addCollectionToDataStore(collectionName.text);
- }
-
- function updateCollectionExists() {
- collectionName.alreadyExists = sourceModel.collectionExists(backendValue.dataStoreNode(),
- collectionName.text)
- }
-
- component NameField: Text {
- Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
- horizontalAlignment: Qt.AlignRight
- verticalAlignment: Qt.AlignCenter
- color: StudioTheme.Values.themeTextColor
- font.family: StudioTheme.Constants.font.family
- font.pixelSize: StudioTheme.Values.baseIconFontSize
- }
-
- component ErrorField: Text {
- Layout.columnSpan: 2
- color: StudioTheme.Values.themeError
- font.family: StudioTheme.Constants.font.family
- font.pixelSize: StudioTheme.Values.baseIconFontSize
+ root.CollectionEditorBackend.rootView.addCollectionToDataStore(collectionName.text);
}
- component Spacer: Item {
- Layout.minimumWidth: 1
- Layout.preferredHeight: StudioTheme.Values.columnGap
- }
-
- contentItem: ColumnLayout {
+ ColumnLayout {
spacing: 5
NameField {
- text: qsTr("The model name")
- visible: collectionName.enabled
+ text: qsTr("Name")
}
StudioControls.TextField {
id: collectionName
- readonly property bool isValid: !collectionName.enabled
- || (collectionName.text !== "" && !collectionName.alreadyExists)
- property bool alreadyExists
-
Layout.fillWidth: true
- visible: collectionName.enabled
actionIndicator.visible: false
translationIndicator.visible: false
validator: RegularExpressionValidator {
@@ -93,39 +55,57 @@ StudioControls.Dialog {
Keys.onReturnPressed: btnCreate.onClicked()
Keys.onEscapePressed: root.reject()
- onTextChanged: root.updateCollectionExists()
- }
-
- ErrorField {
- text: qsTr("The model name can not be empty")
- visible: collectionName.enabled && collectionName.text === ""
+ onTextChanged: {
+ root.nameExists = CollectionEditorBackend.model.collectionExists(collectionName.text)
+ }
}
ErrorField {
- text: qsTr("The model name already exists %1").arg(collectionName.text)
- visible: collectionName.enabled && collectionName.alreadyExists
+ id: errorField
+ text: {
+ if (collectionName.text === "")
+ return qsTr("Name can not be empty")
+ else if (root.nameExists)
+ return qsTr("Name '%1' already exists").arg(collectionName.text)
+ else
+ return ""
+ }
}
- Spacer { visible: collectionName.visible }
+ Spacer {}
- RowLayout {
+ Row {
spacing: StudioTheme.Values.sectionRowSpacing
- Layout.alignment: Qt.AlignRight | Qt.AlignBottom
HelperWidgets.Button {
id: btnCreate
- Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
text: qsTr("Create")
enabled: root.isValid
onClicked: root.accept()
}
HelperWidgets.Button {
- Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
text: qsTr("Cancel")
onClicked: root.reject()
}
}
}
+
+ component NameField: Text {
+ color: StudioTheme.Values.themeTextColor
+ font.family: StudioTheme.Constants.font.family
+ font.pixelSize: StudioTheme.Values.baseIconFontSize
+ }
+
+ component ErrorField: Text {
+ color: StudioTheme.Values.themeError
+ font.family: StudioTheme.Constants.font.family
+ font.pixelSize: StudioTheme.Values.baseIconFontSize
+ }
+
+ component Spacer: Item {
+ width: 1
+ height: StudioTheme.Values.columnGap
+ }
}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml
index c6db8425ff2..2c98b58adc7 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml
@@ -23,6 +23,7 @@ Item {
texturesView.closeContextMenu()
environmentsView.closeContextMenu()
effectsView.closeContextMenu()
+ userView.closeContextMenu()
HelperWidgets.Controller.closeContextMenu()
}
@@ -113,10 +114,18 @@ Item {
id: tabBar
width: parent.width
height: StudioTheme.Values.toolbarHeight
- tabsModel: [{name: qsTr("Materials"), icon: StudioTheme.Constants.material_medium},
- {name: qsTr("Textures"), icon: StudioTheme.Constants.textures_medium},
- {name: qsTr("Environments"), icon: StudioTheme.Constants.languageList_medium},
- {name: qsTr("Effects"), icon: StudioTheme.Constants.effects}]
+
+ Component.onCompleted: {
+ var tabs = [
+ { name: qsTr("Materials"), icon: StudioTheme.Constants.material_medium },
+ { name: qsTr("Textures"), icon: StudioTheme.Constants.textures_medium },
+ { name: qsTr("Environments"), icon: StudioTheme.Constants.languageList_medium },
+ { name: qsTr("Effects"), icon: StudioTheme.Constants.effects }
+ ];
+ if (ContentLibraryBackend.rootView.userBundleEnabled())
+ tabs.push({ name: qsTr("User Assets"), icon: StudioTheme.Constants.effects });
+ tabBar.tabsModel = tabs;
+ }
}
}
}
@@ -148,7 +157,8 @@ Item {
onUnimport: (bundleMat) => {
confirmUnimportDialog.targetBundleItem = bundleMat
- confirmUnimportDialog.targetBundleType = "material"
+ confirmUnimportDialog.targetBundleLabel = "material"
+ confirmUnimportDialog.targetBundleModel = ContentLibraryBackend.materialsModel
confirmUnimportDialog.open()
}
@@ -208,7 +218,31 @@ Item {
onUnimport: (bundleItem) => {
confirmUnimportDialog.targetBundleItem = bundleItem
- confirmUnimportDialog.targetBundleType = "effect"
+ confirmUnimportDialog.targetBundleLabel = "effect"
+ confirmUnimportDialog.targetBundleModel = ContentLibraryBackend.effectsModel
+ confirmUnimportDialog.open()
+ }
+
+ onCountChanged: root.responsiveResize(stackLayout.width, stackLayout.height)
+ }
+
+ ContentLibraryUserView {
+ id: userView
+
+ adsFocus: root.adsFocus
+ width: root.width
+
+ cellWidth: root.thumbnailSize
+ cellHeight: root.thumbnailSize + 20
+ numColumns: root.numColumns
+ hideHorizontalScrollBar: true
+
+ searchBox: searchBox
+
+ onUnimport: (bundleItem) => {
+ confirmUnimportDialog.targetBundleItem = bundleItem
+ confirmUnimportDialog.targetBundleLabel = "material"
+ confirmUnimportDialog.targetBundleModel = ContentLibraryBackend.userModel
confirmUnimportDialog.open()
}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterial.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterial.qml
index 93b226d6caf..0e9fc4903eb 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterial.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterial.qml
@@ -12,12 +12,15 @@ import WebFetcher
Item {
id: root
- signal showContextMenu()
-
// Download states: "" (ie default, not downloaded), "unavailable", "downloading", "downloaded",
// "failed"
property string downloadState: modelData.isDownloaded() ? "downloaded" : ""
+ property bool importerRunning: false
+
+ signal showContextMenu()
+ signal addToProject()
+
visible: modelData.bundleMaterialVisible
MouseArea {
@@ -29,7 +32,7 @@ Item {
acceptedButtons: Qt.LeftButton | Qt.RightButton
onPressed: (mouse) => {
- if (mouse.button === Qt.LeftButton && !materialsModel.importerRunning) {
+ if (mouse.button === Qt.LeftButton && !root.importerRunning) {
if (root.downloadState === "downloaded")
ContentLibraryBackend.rootView.startDragMaterial(modelData, mapToGlobal(mouse.x, mouse.y))
} else if (mouse.button === Qt.RightButton && root.downloadState === "downloaded") {
@@ -96,12 +99,12 @@ Item {
pressColor: Qt.hsla(c.hslHue, c.hslSaturation, c.hslLightness, .4)
anchors.right: img.right
anchors.bottom: img.bottom
- enabled: !ContentLibraryBackend.materialsModel.importerRunning
+ enabled: !root.importerRunning
visible: root.downloadState === "downloaded"
&& (containsMouse || mouseArea.containsMouse)
onClicked: {
- ContentLibraryBackend.materialsModel.addToProject(modelData)
+ root.addToProject()
}
}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialContextMenu.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialContextMenu.qml
index ca3a05bdd12..b67ec311ef0 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialContextMenu.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialContextMenu.qml
@@ -15,8 +15,9 @@ StudioControls.Menu {
readonly property bool targetAvailable: targetMaterial && !importerRunning
- signal unimport(var bundleMat);
- signal addToProject(var bundleMat)
+ signal unimport();
+ signal addToProject()
+ signal applyToSelected(bool add)
function popupMenu(targetMaterial = null)
{
@@ -29,13 +30,13 @@ StudioControls.Menu {
StudioControls.MenuItem {
text: qsTr("Apply to selected (replace)")
enabled: root.targetAvailable && root.hasModelSelection
- onTriggered: materialsModel.applyToSelected(root.targetMaterial, false)
+ onTriggered: root.applyToSelected(false)
}
StudioControls.MenuItem {
text: qsTr("Apply to selected (add)")
enabled: root.targetAvailable && root.hasModelSelection
- onTriggered: materialsModel.applyToSelected(root.targetMaterial, true)
+ onTriggered: root.applyToSelected(true)
}
StudioControls.MenuSeparator {}
@@ -45,7 +46,7 @@ StudioControls.Menu {
text: qsTr("Add an instance to project")
onTriggered: {
- root.addToProject(root.targetMaterial)
+ root.addToProject()
}
}
@@ -53,6 +54,6 @@ StudioControls.Menu {
enabled: root.targetAvailable && root.targetMaterial.bundleMaterialImported
text: qsTr("Remove from project")
- onTriggered: root.unimport(root.targetMaterial)
+ onTriggered: root.unimport()
}
}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialsView.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialsView.qml
index c21baf4c580..9a0e33b8e5e 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialsView.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryMaterialsView.qml
@@ -27,8 +27,6 @@ HelperWidgets.ScrollView {
root.count = c
}
- property var currMaterialItem: null
- property var rootItem: null
property var materialsModel: ContentLibraryBackend.materialsModel
required property var searchBox
@@ -51,17 +49,19 @@ HelperWidgets.ScrollView {
ContentLibraryMaterialContextMenu {
id: ctxMenu
- hasModelSelection: materialsModel.hasModelSelection
- importerRunning: materialsModel.importerRunning
+ hasModelSelection: root.materialsModel.hasModelSelection
+ importerRunning: root.materialsModel.importerRunning
- onUnimport: (bundleMat) => root.unimport(bundleMat)
- onAddToProject: (bundleMat) => materialsModel.addToProject(bundleMat)
+ onApplyToSelected: (add) => root.materialsModel.applyToSelected(ctxMenu.targetMaterial, add)
+
+ onUnimport: root.unimport(ctxMenu.targetMaterial)
+ onAddToProject: root.materialsModel.addToProject(ctxMenu.targetMaterial)
}
Repeater {
id: categoryRepeater
- model: materialsModel
+ model: root.materialsModel
delegate: HelperWidgets.Section {
id: section
@@ -73,7 +73,7 @@ HelperWidgets.ScrollView {
bottomPadding: StudioTheme.Values.sectionPadding
caption: bundleCategoryName
- visible: bundleCategoryVisible && !materialsModel.isEmpty
+ visible: bundleCategoryVisible && !root.materialsModel.isEmpty
expanded: bundleCategoryExpanded
expandOnClick: false
category: "ContentLib_Mat"
@@ -103,7 +103,10 @@ HelperWidgets.ScrollView {
width: root.cellWidth
height: root.cellHeight
+ importerRunning: root.materialsModel.importerRunning
+
onShowContextMenu: ctxMenu.popupMenu(modelData)
+ onAddToProject: root.materialsModel.addToProject(modelData)
}
onCountChanged: root.assignMaxCount()
@@ -115,13 +118,13 @@ HelperWidgets.ScrollView {
Text {
id: infoText
text: {
- if (!materialsModel.matBundleExists)
+ if (!root.materialsModel.matBundleExists)
qsTr("No materials available. Make sure you have internet connection.")
else if (!ContentLibraryBackend.rootView.isQt6Project)
qsTr("<b>Content Library</b> materials are not supported in Qt5 projects.")
else if (!ContentLibraryBackend.rootView.hasQuick3DImport)
qsTr("To use <b>Content Library</b>, first add the QtQuick3D module in the <b>Components</b> view.")
- else if (!materialsModel.hasRequiredQuick3DImport)
+ else if (!root.materialsModel.hasRequiredQuick3DImport)
qsTr("To use <b>Content Library</b>, version 6.3 or later of the QtQuick3D module is required.")
else if (!ContentLibraryBackend.rootView.hasMaterialLibrary)
qsTr("<b>Content Library</b> is disabled inside a non-visual component.")
@@ -134,7 +137,7 @@ HelperWidgets.ScrollView {
font.pixelSize: StudioTheme.Values.baseFontSize
topPadding: 10
leftPadding: 10
- visible: materialsModel.isEmpty
+ visible: root.materialsModel.isEmpty
}
}
}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexture.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexture.qml
index f74f1900405..4fbeb1b8b54 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexture.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexture.qml
@@ -148,7 +148,7 @@ Item {
visible: root.delegateVisible && root.downloadState != "downloading"
cache: false
- property string webUrl: modelData.textureWebUrl
+ property string textureUrl: modelData.textureUrl
IconButton {
id: downloadIcon
@@ -279,7 +279,7 @@ Item {
FileDownloader {
id: textureDownloader
- url: image.webUrl
+ url: image.textureUrl
probeUrl: false
downloadEnabled: true
onDownloadStarting: {
@@ -333,7 +333,7 @@ Item {
FileDownloader {
id: iconDownloader
- url: modelData.textureWebIconUrl
+ url: modelData.textureIconUrl
probeUrl: false
downloadEnabled: true
targetFilePath: modelData.textureIconPath
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexturesView.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexturesView.qml
index 1fac9f2234e..617b724e664 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexturesView.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryTexturesView.qml
@@ -27,9 +27,6 @@ HelperWidgets.ScrollView {
root.count = c
}
- property var currMaterialItem: null
- property var rootItem: null
-
required property var searchBox
required property var model
required property string sectionCategory
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryUserView.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryUserView.qml
new file mode 100644
index 00000000000..1288e14c2a7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryUserView.qml
@@ -0,0 +1,169 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import Qt.labs.qmlmodels
+import HelperWidgets as HelperWidgets
+import StudioControls as StudioControls
+import StudioTheme as StudioTheme
+import ContentLibraryBackend
+
+HelperWidgets.ScrollView {
+ id: root
+
+ clip: true
+ interactive: !ctxMenuMaterial.opened && !ctxMenuTexture.opened
+ && !ContentLibraryBackend.rootView.isDragging && !HelperWidgets.Controller.contextMenuOpened
+
+ property real cellWidth: 100
+ property real cellHeight: 120
+ property int numColumns: 4
+
+ property int count: 0
+ function assignMaxCount() {
+ let c = 0
+ for (let i = 0; i < categoryRepeater.count; ++i)
+ c = Math.max(c, categoryRepeater.itemAt(i)?.count ?? 0)
+
+ root.count = c
+ }
+
+ required property var searchBox
+
+ signal unimport(var bundleItem);
+
+ function closeContextMenu() {
+ ctxMenuMaterial.close()
+ ctxMenuTexture.close()
+ }
+
+ function expandVisibleSections() {
+ for (let i = 0; i < categoryRepeater.count; ++i) {
+ let cat = categoryRepeater.itemAt(i)
+ if (cat.visible && !cat.expanded)
+ cat.expandSection()
+ }
+ }
+
+ Column {
+ ContentLibraryMaterialContextMenu {
+ id: ctxMenuMaterial
+
+ hasModelSelection: ContentLibraryBackend.userModel.hasModelSelection
+ importerRunning: ContentLibraryBackend.userModel.importerRunning
+
+ onApplyToSelected: (add) => ContentLibraryBackend.userModel.applyToSelected(ctxMenuMaterial.targetMaterial, add)
+
+ onUnimport: root.unimport(ctxMenuMaterial.targetMaterial)
+ onAddToProject: ContentLibraryBackend.userModel.addToProject(ctxMenuMaterial.targetMaterial)
+ }
+
+ ContentLibraryTextureContextMenu {
+ id: ctxMenuTexture
+
+ hasSceneEnv: ContentLibraryBackend.texturesModel.hasSceneEnv
+ }
+
+ Repeater {
+ id: categoryRepeater
+
+ model: ContentLibraryBackend.userModel
+
+ delegate: HelperWidgets.Section {
+ id: section
+
+ width: root.width
+ leftPadding: StudioTheme.Values.sectionPadding
+ rightPadding: StudioTheme.Values.sectionPadding
+ topPadding: StudioTheme.Values.sectionPadding
+ bottomPadding: StudioTheme.Values.sectionPadding
+
+ caption: categoryName
+ visible: categoryVisible
+ category: "ContentLib_User"
+
+ function expandSection() {
+ section.expanded = true
+ }
+
+ property alias count: repeater.count
+
+ onCountChanged: root.assignMaxCount()
+
+ property int numVisibleItem: 1 // initially, the tab is invisible so this will be 0
+
+ Grid {
+ width: section.width - section.leftPadding - section.rightPadding
+ spacing: StudioTheme.Values.sectionGridSpacing
+ columns: root.numColumns
+
+ Repeater {
+ id: repeater
+ model: categoryItems
+
+ delegate: DelegateChooser {
+ role: "itemType"
+
+ DelegateChoice {
+ roleValue: "material"
+ ContentLibraryMaterial {
+ width: root.cellWidth
+ height: root.cellHeight
+
+ importerRunning: ContentLibraryBackend.userModel.importerRunning
+
+ onShowContextMenu: ctxMenuMaterial.popupMenu(modelData)
+ onAddToProject: ContentLibraryBackend.userModel.addToProject(modelData)
+
+ onVisibleChanged: {
+ section.numVisibleItem += visible ? 1 : -1
+ }
+ }
+ }
+ DelegateChoice {
+ roleValue: "texture"
+ delegate: ContentLibraryTexture {
+ width: root.cellWidth
+ height: root.cellWidth // for textures use a square size since there is no name row
+
+ onShowContextMenu: ctxMenuTexture.popupMenu(modelData)
+ }
+ }
+ }
+
+ onCountChanged: root.assignMaxCount()
+ }
+ }
+
+ Text {
+ text: qsTr("No match found.");
+ color: StudioTheme.Values.themeTextColor
+ font.pixelSize: StudioTheme.Values.baseFontSize
+ leftPadding: 10
+ visible: !searchBox.isEmpty() && section.numVisibleItem === 0
+ }
+ }
+ }
+
+ Text {
+ id: infoText
+ text: {
+ if (!ContentLibraryBackend.effectsModel.bundleExists)
+ qsTr("User bundle couldn't be found.")
+ else if (!ContentLibraryBackend.rootView.isQt6Project)
+ qsTr("<b>Content Library</b> is not supported in Qt5 projects.")
+ else if (!ContentLibraryBackend.rootView.hasQuick3DImport)
+ qsTr("To use <b>Content Library</b>, first add the QtQuick3D module in the <b>Components</b> view.")
+ else if (!ContentLibraryBackend.rootView.hasMaterialLibrary)
+ qsTr("<b>Content Library</b> is disabled inside a non-visual component.")
+ else
+ ""
+ }
+ color: StudioTheme.Values.themeTextColor
+ font.pixelSize: StudioTheme.Values.baseFontSize
+ topPadding: 10
+ leftPadding: 10
+ visible: ContentLibraryBackend.effectsModel.isEmpty
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/UnimportBundleMaterialDialog.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/UnimportBundleMaterialDialog.qml
index 48be045d8bd..4385e3bf82e 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/UnimportBundleMaterialDialog.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/UnimportBundleMaterialDialog.qml
@@ -12,24 +12,27 @@ import ContentLibraryBackend
StudioControls.Dialog {
id: root
- title: qsTr("Bundle material might be in use")
+ property var targetBundleItem
+ property var targetBundleLabel // "effect" or "material"
+ property var targetBundleModel
+
+ title: qsTr("Bundle %1 might be in use").arg(root.targetBundleLabel)
anchors.centerIn: parent
closePolicy: Popup.CloseOnEscape
implicitWidth: 300
modal: true
- property var targetBundleType // "effect" or "material"
- property var targetBundleItem
+ onOpened: warningText.forceActiveFocus()
contentItem: Column {
spacing: 20
width: parent.width
Text {
- id: folderNotEmpty
+ id: warningText
- text: qsTr("If the %1 you are removing is in use, it might cause the project to malfunction.\n\nAre you sure you want to remove the %1?")
- .arg(root.targetBundleType)
+ text: qsTr("If the %1 you are removing is in use, it might cause the project to malfunction.\n\nAre you sure you want to remove it?")
+ .arg(root.targetBundleLabel)
color: StudioTheme.Values.themeTextColor
wrapMode: Text.WordWrap
anchors.right: parent.right
@@ -49,11 +52,7 @@ StudioControls.Dialog {
text: qsTr("Remove")
onClicked: {
- if (root.targetBundleType === "material")
- ContentLibraryBackend.materialsModel.removeFromProject(root.targetBundleItem)
- else if (root.targetBundleType === "effect")
- ContentLibraryBackend.effectsModel.removeFromProject(root.targetBundleItem)
-
+ root.targetBundleModel.removeFromProject(root.targetBundleItem)
root.accept()
}
}
@@ -64,6 +63,4 @@ StudioControls.Dialog {
}
}
}
-
- onOpened: folderNotEmpty.forceActiveFocus()
}
diff --git a/share/qtcreator/qmldesigner/designericons.json b/share/qtcreator/qmldesigner/designericons.json
index 85c76066bb7..005494b4715 100644
--- a/share/qtcreator/qmldesigner/designericons.json
+++ b/share/qtcreator/qmldesigner/designericons.json
@@ -218,6 +218,9 @@
"iconName": "perspectiveCam_small"
}
},
+ "CameraSpeedConfigIcon": {
+ "iconName": "cameraSpeed_medium"
+ },
"EditColorIcon": {
"iconName": "colorSelection_medium"
},
diff --git a/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml b/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml
new file mode 100644
index 00000000000..b51369ffa3f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml
@@ -0,0 +1,156 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0 WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+import HelperWidgets as HelperWidgets
+import StudioControls as StudioControls
+import StudioTheme as StudioTheme
+
+Rectangle {
+ id: root
+
+ property int toolTipDelay: 1000
+
+ width: 260
+ height: 150
+ color: StudioTheme.Values.themePanelBackground
+ border.color: StudioTheme.Values.themeControlOutline
+ border.width: StudioTheme.Values.border
+
+ function handleSpeedChanged() {
+ speedSlider.value = Math.round(speed)
+ }
+
+ function handleMultiplierChanged() {
+ multiplierSpin.value = multiplier
+ }
+
+ // Connect context object signals to our handler functions
+ // Controls lose the initial binding if the value changes so we need these handlers
+ Component.onCompleted: {
+ onSpeedChanged.connect(handleSpeedChanged);
+ onMultiplierChanged.connect(handleMultiplierChanged);
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 0
+
+ RowLayout {
+ height: 32
+ Layout.topMargin: 8
+ Layout.rightMargin: 8
+ Layout.leftMargin: 8
+ Layout.fillWidth: true
+ spacing: 16
+
+ Rectangle {
+ width: 40
+ height: 40
+ radius: 5
+ Layout.fillHeight: false
+ color: StudioTheme.Values.themePanelBackground
+ border.color: StudioTheme.Values.themeControlOutline
+ border.width: StudioTheme.Values.border
+
+ HelperWidgets.IconIndicator {
+ anchors.fill: parent
+ icon: StudioTheme.Constants.cameraSpeed_medium
+ pixelSize: StudioTheme.Values.myIconFontSize * 1.4
+ iconColor: StudioTheme.Values.themeLinkIndicatorColorHover
+ enabled: false
+ states: [] // Disable normal state based coloring
+ }
+ }
+ Text {
+ text: qsTr("Camera Speed Configuration")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ Layout.fillWidth: true
+ font.bold: true
+ color: StudioTheme.Values.themeTextColor
+ }
+ }
+
+ ColumnLayout {
+ Layout.margins: 10
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 5
+
+ StudioControls.Slider {
+ id: speedSlider
+ Layout.fillWidth: true
+ labels: false
+ actionIndicatorVisible: false
+ handleLabelVisible: false
+ from: 1
+ to: 100
+ value: Math.round(speed)
+ onMoved: speed = Math.round(value)
+
+ hoverEnabled: true
+ ToolTip.visible: hovered
+ ToolTip.text: qsTr("The speed camera moves when controlled by keyboard.")
+ ToolTip.delay: root.toolTipDelay
+ }
+
+ Text {
+ Layout.preferredWidth: 80
+ text: {
+ const decimals = -Math.floor(Math.log10(multiplier))
+ return totalSpeed.toLocaleString(Qt.locale(), 'f', decimals > 0 ? decimals : 0)
+ }
+
+ font.pixelSize: 12
+ font.bold: true
+ horizontalAlignment: Qt.AlignRight
+ color: StudioTheme.Values.themeTextColor
+ }
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
+ spacing: 5
+
+ Text {
+ text: qsTr("Multiplier")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ Layout.fillWidth: true
+ font.bold: true
+ color: StudioTheme.Values.themeTextColor
+ }
+
+ HelperWidgets.DoubleSpinBox {
+ id: multiplierSpin
+ Layout.fillWidth: true
+ minimumValue: 0.01
+ maximumValue: 100000
+ value: multiplier
+ stepSize: 0.01
+ decimals: 2
+
+ ToolTip.visible: hover
+ ToolTip.text: qsTr("The value multiplier for the speed slider.")
+ ToolTip.delay: root.toolTipDelay
+
+ onValueChanged: multiplier = value
+ }
+
+ HelperWidgets.Button {
+ text: qsTr("Reset")
+ Layout.alignment: Qt.AlignBottom
+ Layout.preferredWidth: 70
+ Layout.preferredHeight: multiplierSpin.height
+ onClicked: resetDefaults()
+ }
+ }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml
new file mode 100644
index 00000000000..146f7edef1b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ConfirmClearAllDialog.qml
@@ -0,0 +1,47 @@
+// Copyright (C) 2024 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.Controls
+import HelperWidgets as HelperWidgets
+import StudioControls as StudioControls
+import StudioTheme as StudioTheme
+import EffectComposerBackend
+
+StudioControls.Dialog {
+ id: root
+
+ title: qsTr("Confirm clear list")
+
+ closePolicy: Popup.CloseOnEscape
+ modal: true
+ implicitWidth: 270
+ implicitHeight: 150
+
+ contentItem: Item {
+ Text {
+ text: qsTr("You are about to clear the list of effect nodes.\n\nThis can not be undone.")
+ color: StudioTheme.Values.themeTextColor
+ }
+
+ Row {
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ spacing: 2
+
+ HelperWidgets.Button {
+ text: qsTr("Clear")
+ onClicked: {
+ EffectComposerBackend.effectComposerModel.clear()
+ root.accept()
+ }
+ }
+
+ HelperWidgets.Button {
+ anchors.bottom: parent.bottom
+ text: qsTr("Cancel")
+ onClicked: root.reject()
+ }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml
index 95ab2c49bd4..305bbc7925c 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml
@@ -22,6 +22,7 @@ ColumnLayout {
property int moveFromIdx: 0
property int moveToIdx: 0
property bool previewAnimationRunning: false
+ property var expandStates: null
// Invoked after save changes is done
property var onSaveChangesCallback: () => {}
@@ -33,6 +34,28 @@ ColumnLayout {
saveChangesDialog.open()
}
+ // Invoked from C++ side before resetting the model to store current expanded state of nodes
+ function storeExpandStates() {
+ expandStates = new Map()
+
+ for (let i = 0; i < repeater.count; ++i) {
+ var curItem = repeater.itemAt(i)
+ expandStates.set(curItem.caption, curItem.expanded)
+ }
+ }
+
+ // Invoked after model has been reset to restore expanded state for nodes
+ function restoreExpandStates() {
+ if (expandStates) {
+ for (let i = 0; i < repeater.count; ++i) {
+ var curItem = repeater.itemAt(i)
+ if (expandStates.has(curItem.caption))
+ curItem.expanded = expandStates.get(curItem.caption)
+ }
+ expandStates = null
+ }
+ }
+
Connections {
target: root.backendModel
function onIsEmptyChanged() {
@@ -65,6 +88,11 @@ ColumnLayout {
}
}
+ ConfirmClearAllDialog {
+ id: confirmClearAllDialog
+ anchors.centerIn: parent
+ }
+
EffectComposerTopBar {
Layout.fillWidth: true
@@ -140,6 +168,8 @@ ColumnLayout {
color: StudioTheme.Values.themeToolbarBackground
EffectNodesComboBox {
+ id: nodesComboBox
+
mainRoot: root
anchors.verticalCenter: parent.verticalCenter
@@ -155,9 +185,14 @@ ColumnLayout {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.clearList_medium
tooltip: qsTr("Remove all effect nodes.")
- enabled: !root.backendModel.isEmpty
+ enabled: root.backendModel ? !root.backendModel.isEmpty : false
- onClicked: root.backendModel.clear()
+ onClicked: {
+ if (root.backendModel.hasUnsavedChanges)
+ confirmClearAllDialog.open()
+ else
+ root.backendModel.clear()
+ }
}
HelperWidgets.AbstractButton {
@@ -181,14 +216,24 @@ ColumnLayout {
HelperWidgets.ScrollView {
id: scrollView
+ readonly property int dragScrollMargin: 50
+
anchors.fill: parent
clip: true
interactive: !HelperWidgets.Controller.contextMenuOpened
onContentHeightChanged: {
- if (scrollView.contentItem.height > scrollView.height) {
+ // Expand states are stored before full model reset.
+ // Content height change indicates the model has been updated after full
+ // reset, so we restore expand states if any are stored.
+ root.restoreExpandStates()
+
+ // If content height change was because a recent node addition, we want to
+ // scroll to the end of the content so the newly added item is visible.
+ if (nodesComboBox.nodeJustAdded && scrollView.contentItem.height > scrollView.height) {
let lastItemH = repeater.itemAt(repeater.count - 1).height
scrollView.contentY = scrollView.contentItem.height - lastItemH
+ nodesComboBox.nodeJustAdded = false
}
}
@@ -211,7 +256,10 @@ ColumnLayout {
width: parent.width
modelIndex: index
+ property bool wasExpanded: false
+
Behavior on y {
+ id: dragAnimation
PropertyAnimation {
duration: 300
easing.type: Easing.InOutQuad
@@ -221,68 +269,118 @@ ColumnLayout {
onStartDrag: (section) => {
root.draggedSec = section
root.moveFromIdx = index
-
+ // We only need to animate non-dragged sections
+ dragAnimation.enabled = false
+ wasExpanded = expanded
+ expanded = false
highlightBorder = true
-
root.secsY = []
- for (let i = 0; i < repeater.count; ++i)
- root.secsY[i] = repeater.itemAt(i).y
}
onStopDrag: {
- if (root.moveFromIdx === root.moveToIdx)
- root.draggedSec.y = root.secsY[root.moveFromIdx]
- else
- root.backendModel.moveNode(root.moveFromIdx, root.moveToIdx)
+ if (root.secsY.length !== 0) {
+ if (root.moveFromIdx === root.moveToIdx)
+ root.draggedSec.y = root.secsY[root.moveFromIdx]
+ else
+ root.backendModel.moveNode(root.moveFromIdx, root.moveToIdx)
+ }
highlightBorder = false
root.draggedSec = null
+ expanded = wasExpanded
+ dragAnimation.enabled = true
}
}
} // Repeater
-
- Timer {
- running: root.draggedSec
- interval: 50
- repeat: true
-
- onTriggered: {
- root.moveToIdx = root.moveFromIdx
- for (let i = 0; i < repeater.count; ++i) {
- let currItem = repeater.itemAt(i)
- if (i > root.moveFromIdx) {
- if (root.draggedSec.y > currItem.y + (currItem.height - root.draggedSec.height) * .5) {
- currItem.y = root.secsY[i] - root.draggedSec.height - nodesCol.spacing
- root.moveToIdx = i
- } else {
- currItem.y = root.secsY[i]
- }
- } else if (i < root.moveFromIdx) {
- if (!repeater.model.isDependencyNode(i)
- && root.draggedSec.y < currItem.y + (currItem.height - root.draggedSec.height) * .5) {
- currItem.y = root.secsY[i] + root.draggedSec.height + nodesCol.spacing
- root.moveToIdx = Math.min(root.moveToIdx, i)
- } else {
- currItem.y = root.secsY[i]
- }
- }
- }
- }
- } // Timer
} // Column
} // ScrollView
Text {
- text: root.backendModel.isEnabled ? qsTr("Add an effect node to start")
- : qsTr("Effect Composer is disabled on MCU projects")
+ text: root.backendModel ? root.backendModel.isEnabled
+ ? qsTr("Add an effect node to start")
+ : qsTr("Effect Composer is disabled on MCU projects")
+ : ""
color: StudioTheme.Values.themeTextColor
font.pixelSize: StudioTheme.Values.baseFontSize
anchors.centerIn: parent
- visible: root.backendModel.isEmpty
+ visible: root.backendModel ? root.backendModel.isEmpty : false
}
} // Item
} // Column
} // SplitView
+
+ function handleDragMove() {
+ dragTimer.stop()
+ if (root.secsY.length === 0) {
+ for (let i = 0; i < repeater.count; ++i)
+ root.secsY[i] = repeater.itemAt(i).y
+ }
+
+ let oldContentY = scrollView.contentY
+ if (root.draggedSec.y < scrollView.dragScrollMargin + scrollView.contentY
+ && scrollView.contentY > 0) {
+ scrollView.contentY -= scrollView.dragScrollMargin / 2
+ } else if (root.draggedSec.y > scrollView.contentY + scrollView.height - scrollView.dragScrollMargin
+ && scrollView.contentY < scrollView.contentHeight - scrollView.height) {
+ scrollView.contentY += scrollView.dragScrollMargin / 2
+ if (scrollView.contentY > scrollView.contentHeight - scrollView.height)
+ scrollView.contentY = scrollView.contentHeight - scrollView.height
+ }
+ if (scrollView.contentY < 0)
+ scrollView.contentY = 0
+
+ if (oldContentY !== scrollView.contentY) {
+ // Changing dragged section position in drag handler doesn't seem to stick
+ // when triggered by mouse move, so do it again async
+ dragTimer.targetY = root.draggedSec.y - oldContentY + scrollView.contentY
+ dragTimer.restart()
+ dragConnection.enabled = false
+ root.draggedSec.y = dragTimer.targetY
+ dragConnection.enabled = true
+ }
+
+ root.moveToIdx = root.moveFromIdx
+ for (let i = 0; i < repeater.count; ++i) {
+ let currItem = repeater.itemAt(i)
+ if (i > root.moveFromIdx) {
+ if (root.draggedSec.y > currItem.y) {
+ currItem.y = root.secsY[i] - root.draggedSec.height - nodesCol.spacing
+ root.moveToIdx = i
+ } else {
+ currItem.y = root.secsY[i]
+ }
+ } else if (i < root.moveFromIdx) {
+ if (!repeater.model.isDependencyNode(i) && root.draggedSec.y < currItem.y) {
+ currItem.y = root.secsY[i] + root.draggedSec.height + nodesCol.spacing
+ root.moveToIdx = Math.min(root.moveToIdx, i)
+ } else {
+ currItem.y = root.secsY[i]
+ }
+ }
+ }
+ }
+
+ Connections {
+ id: dragConnection
+ target: root.draggedSec
+ function onYChanged() { root.handleDragMove() }
+ }
+
+ Timer {
+ id: dragTimer
+ running: false
+ interval: 16
+ repeat: false
+
+ property real targetY: -1
+
+ onTriggered: {
+ // Ensure we get position change triggers even if user holds mouse still to
+ // make scrolling smooth
+ root.draggedSec.y = targetY
+ root.handleDragMove()
+ }
+ } // Timer
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml
index 84c521aac97..c0c47f73661 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml
@@ -20,18 +20,23 @@ Column {
// The delay in ms to wait until updating the effect
readonly property int updateDelay: 100
+ readonly property int previewMargin: 5
+ readonly property int extraMargin: 200
+
+ property real previewScale: 1
+
// Create a dummy parent to host the effect qml object
function createNewComponent() {
// If we have a working effect, do not show preview image as it shows through
// transparent parts of the final image
- source.visible = false;
+ placeHolder.visible = false;
var oldComponent = componentParent.children[0];
if (oldComponent)
oldComponent.destroy();
try {
const newObject = Qt.createQmlObject(
- effectComposerModel.qmlComponentString,
+ effectComposerModel.qmlComponentString(),
componentParent,
""
);
@@ -46,7 +51,7 @@ Column {
errorLine = e.lineNumber;
}
effectComposerModel.setEffectError(errorString, 0, errorLine);
- source.visible = true;
+ placeHolder.visible = true;
}
}
@@ -82,35 +87,42 @@ Column {
anchors.verticalCenter: parent.verticalCenter
HelperWidgets.AbstractButton {
- enabled: sourceImage.scale < 2
+ enabled: root.previewScale < 3
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.zoomIn_medium
tooltip: qsTr("Zoom In")
onClicked: {
- sourceImage.scale += .2
+ imageScaler.enableAnim(true)
+ root.previewScale += .2
+ imageScaler.enableAnim(false)
+ zoomIndicator.show()
}
}
HelperWidgets.AbstractButton {
- enabled: sourceImage.scale > .4
+ enabled: root.previewScale > .4
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.zoomOut_medium
tooltip: qsTr("Zoom out")
onClicked: {
- sourceImage.scale -= .2
+ imageScaler.enableAnim(true)
+ root.previewScale -= .2
+ imageScaler.enableAnim(false)
+ zoomIndicator.show()
}
}
HelperWidgets.AbstractButton {
- enabled: sourceImage.scale !== 1
+ enabled: root.previewScale !== 1 || imageScaler.x !== root.previewMargin
+ || imageScaler.y !== root.previewMargin
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.fitAll_medium
- tooltip: qsTr("Zoom Fit")
+ tooltip: qsTr("Reset View")
onClicked: {
- sourceImage.scale = 1
+ imageScaler.resetTransforms()
}
}
}
@@ -167,27 +179,87 @@ Column {
height: root.height - y
clip: true
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ acceptedButtons: Qt.LeftButton
+
+ property real pressX: 0
+ property real pressY: 0
+ property bool panning: false
+
+ onPressed: {
+ pressX = mouseX - imageScaler.x
+ pressY = mouseY - imageScaler.y
+ panning = true
+ }
+
+ onReleased: {
+ panning = false
+ }
+
+ onWheel: (wheel) => {
+ let oldPoint = imageScaler.mapFromItem(mouseArea, Qt.point(wheel.x, wheel.y))
+
+ if (wheel.angleDelta.y > 0) {
+ if (root.previewScale < 3)
+ root.previewScale += .2
+ } else {
+ if (root.previewScale > .4)
+ root.previewScale -= .2
+ }
+
+ let newPoint = imageScaler.mapFromItem(mouseArea, Qt.point(wheel.x, wheel.y))
+ imageScaler.x -= (oldPoint.x - newPoint.x) * imageScaler.scale
+ imageScaler.y -= (oldPoint.y - newPoint.y) * imageScaler.scale
+
+ imageScaler.checkBounds()
+ zoomIndicator.show()
+ }
+
+ Timer { // pan timer
+ running: parent.panning
+ interval: 16
+ repeat: true
+
+ onTriggered: {
+ imageScaler.x = mouseArea.mouseX - mouseArea.pressX
+ imageScaler.y = mouseArea.mouseY - mouseArea.pressY
+ imageScaler.checkBounds()
+ }
+ }
+ }
+
+ Image {
+ id: placeHolder
+ anchors.fill: parent
+ anchors.margins: root.previewMargin
+ fillMode: Image.PreserveAspectFit
+ source: imagesComboBox.selectedImage
+ smooth: true
+ }
+
Item { // Source item as a canvas (render target) for effect
id: source
- anchors.fill: parent
+ width: sourceImage.sourceSize.width
+ height: sourceImage.sourceSize.height
layer.enabled: true
layer.mipmap: true
layer.smooth: true
+ layer.sourceRect: Qt.rect(-root.extraMargin, -root.extraMargin,
+ width + root.extraMargin * 2, height + root.extraMargin * 2)
+ visible: false
Image {
id: sourceImage
- anchors.margins: 5
- anchors.fill: parent
- fillMode: Image.PreserveAspectFit
+
+ onSourceChanged: imageScaler.resetTransforms()
+
+ fillMode: Image.Pad
+
source: imagesComboBox.selectedImage
smooth: true
-
- Behavior on scale {
- NumberAnimation {
- duration: 200
- easing.type: Easing.OutQuad
- }
- }
}
}
@@ -199,20 +271,117 @@ Column {
}
Item {
- id: componentParent
- width: source.width
- height: source.height
- anchors.centerIn: parent
- // Cache the layer. This way heavy shaders rendering doesn't
- // slow down code editing & rest of the UI.
- layer.enabled: true
- layer.smooth: true
+ id: imageScaler
+ x: root.previewMargin
+ y: root.previewMargin
+ width: parent.width - root.previewMargin * 2
+ height: parent.height - root.previewMargin * 2
+
+ scale: root.previewScale * (width > height ? height / sourceImage.sourceSize.height
+ : width / sourceImage.sourceSize.width)
+
+ Behavior on x {
+ id: xBehavior
+
+ enabled: false
+ NumberAnimation {
+ duration: 200
+ easing.type: Easing.OutQuad
+ }
+ }
+
+ Behavior on y {
+ id: yBehavior
+
+ enabled: false
+ NumberAnimation {
+ duration: 200
+ easing.type: Easing.OutQuad
+ }
+ }
+
+ Behavior on scale {
+ id: scaleBehavior
+
+ enabled: false
+ NumberAnimation {
+ duration: 200
+ easing.type: Easing.OutQuad
+ }
+ }
+
+ function checkBounds() {
+ let edgeMargin = 10
+ // correction factor to account for an observation that edgeMargin decreases
+ // with increased zoom
+ let corrFactor = 10 * imageScaler.scale
+ let imgW2 = sourceImage.paintedWidth * imageScaler.scale * .5
+ let imgH2 = sourceImage.paintedHeight * imageScaler.scale * .5
+ let srcW2 = width * .5
+ let srcH2 = height * .5
+
+ if (imageScaler.x < -srcW2 - imgW2 + edgeMargin + corrFactor)
+ imageScaler.x = -srcW2 - imgW2 + edgeMargin + corrFactor
+ else if (x > srcW2 + imgW2 - edgeMargin - corrFactor)
+ imageScaler.x = srcW2 + imgW2 - edgeMargin - corrFactor
+
+ if (imageScaler.y < -srcH2 - imgH2 + edgeMargin + corrFactor)
+ imageScaler.y = -srcH2 - imgH2 + edgeMargin + corrFactor
+ else if (y > srcH2 + imgH2 - edgeMargin - corrFactor)
+ imageScaler.y = srcH2 + imgH2 - edgeMargin - corrFactor
+ }
+
+ function resetTransforms() {
+ imageScaler.enableAnim(true)
+ root.previewScale = 1
+ imageScaler.x = root.previewMargin
+ imageScaler.y = root.previewMargin
+ imageScaler.enableAnim(false)
+ }
+
+ function enableAnim(flag) {
+ xBehavior.enabled = flag
+ yBehavior.enabled = flag
+ scaleBehavior.enabled = flag
+ }
+
+ Item {
+ id: componentParent
+ width: source.width
+ height: source.height
+ anchors.centerIn: parent
+ }
+ }
+
+ Rectangle {
+ id: zoomIndicator
+
+ width: 40
+ height: 20
+ color: StudioTheme.Values.themeDialogBackground
+ visible: false
+
+ function show() {
+ zoomIndicator.visible = true
+ zoomIndicatorTimer.start()
+ }
+
+ Text {
+ text: Math.round(root.previewScale * 100) + "%"
+ color: StudioTheme.Values.themeTextColor
+ anchors.centerIn: parent
+ }
+
+ Timer {
+ id: zoomIndicatorTimer
+ interval: 1000
+ onTriggered: zoomIndicator.visible = false
+ }
}
Connections {
target: effectComposerModel
function onShadersBaked() {
- console.log("Shaders Baked!")
updateTimer.restart()
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml
index c01bc6dc992..8f98ae25b25 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml
@@ -28,7 +28,7 @@ Rectangle {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.add_medium
tooltip: qsTr("Add new composition")
- enabled: root.backendModel.isEnabled
+ enabled: root.backendModel ? root.backendModel.isEnabled : false
onClicked: root.addClicked()
}
@@ -36,8 +36,10 @@ Rectangle {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.save_medium
tooltip: qsTr("Save current composition")
- enabled: root.backendModel.isEnabled && (root.backendModel.hasUnsavedChanges
- || root.backendModel.currentComposition === "")
+ enabled: root.backendModel ? root.backendModel.isEnabled
+ && (root.backendModel.hasUnsavedChanges
+ || root.backendModel.currentComposition === "")
+ : false
onClicked: root.saveClicked()
}
@@ -46,7 +48,8 @@ Rectangle {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.saveAs_medium
tooltip: qsTr("Save current composition with a new name")
- enabled: root.backendModel.isEnabled && !root.backendModel.isEmpty
+ enabled: root.backendModel ? root.backendModel.isEnabled && root.backendModel.currentComposition !== ""
+ : false
onClicked: root.saveAsClicked()
}
@@ -55,7 +58,10 @@ Rectangle {
style: StudioTheme.Values.viewBarButtonStyle
buttonIcon: StudioTheme.Constants.assignTo_medium
tooltip: qsTr("Assign current composition to selected item")
- enabled: root.backendModel.isEnabled && root.backendModel.currentComposition !== ""
+ enabled: root.backendModel ? root.backendModel.hasValidTarget
+ && root.backendModel.isEnabled
+ && root.backendModel.currentComposition !== ""
+ : false
onClicked: root.assignToSelectedClicked()
}
@@ -63,7 +69,8 @@ Rectangle {
Text {
- readonly property string compName: root.backendModel.currentComposition
+ readonly property string compName: root.backendModel ? root.backendModel.currentComposition
+ : ""
text: compName !== "" ? compName : qsTr("Untitled")
anchors.centerIn: parent
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml
index 6defa3b0922..a606461b5c5 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml
@@ -43,6 +43,8 @@ HelperWidgets.Section {
EffectCompositionNodeUniform {
width: root.width
+
+ onReset: nodeUniformsModel.resetData(index)
}
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml
index 8dc3b75c9b5..7c3214c5fa7 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml
@@ -13,38 +13,49 @@ Item {
id: root
height: layout.implicitHeight
-
visible: !uniformUseCustomValue
+ signal reset()
+
Component.onCompleted: {
- if (uniformType === "int")
- valueLoader.source = "ValueInt.qml"
- else if (uniformType === "vec2")
+ if (uniformType === "int") {
+ if (uniformControlType === "channel")
+ valueLoader.source = "ValueChannel.qml"
+ else
+ valueLoader.source = "ValueInt.qml"
+ } else if (uniformType === "vec2") {
valueLoader.source = "ValueVec2.qml"
- else if (uniformType === "vec3")
+ } else if (uniformType === "vec3") {
valueLoader.source = "ValueVec3.qml"
- else if (uniformType === "vec4")
+ } else if (uniformType === "vec4") {
valueLoader.source = "ValueVec4.qml"
- else if (uniformType === "bool")
+ } else if (uniformType === "bool") {
valueLoader.source = "ValueBool.qml"
- else if (uniformType === "color")
+ } else if (uniformType === "color") {
valueLoader.source = "ValueColor.qml"
- else if (uniformType === "sampler2D")
+ } else if (uniformType === "sampler2D") {
valueLoader.source = "ValueImage.qml"
- else if (uniformType === "define")
- valueLoader.source = "ValueDefine.qml"
- else
+ } else if (uniformType === "define") {
+ if (uniformControlType === "int")
+ valueLoader.source = "ValueInt.qml"
+ else if (uniformControlType === "bool")
+ valueLoader.source = "ValueBool.qml"
+ else
+ valueLoader.source = "ValueDefine.qml"
+ } else {
valueLoader.source = "ValueFloat.qml"
+ }
}
RowLayout {
id: layout
- spacing: 20
anchors.fill: parent
Text {
- text: uniformName
+ id: textName
+
+ text: uniformDisplayName
color: StudioTheme.Values.themeTextColor
font.pixelSize: StudioTheme.Values.baseFontSize
horizontalAlignment: Text.AlignRight
@@ -54,11 +65,38 @@ Item {
elide: Text.ElideRight
HelperWidgets.ToolTipArea {
+ id: tooltipArea
+
anchors.fill: parent
tooltip: uniformDescription
}
}
+ Item {
+ Layout.preferredHeight: 30
+ Layout.preferredWidth: 30
+
+ MouseArea {
+ id: mouseArea
+
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ HelperWidgets.IconButton {
+ id: iconButton
+
+ buttonSize: 24
+ icon: StudioTheme.Constants.reload_medium
+ iconSize: 16
+ anchors.centerIn: parent
+ visible: mouseArea.containsMouse || iconButton.containsMouse
+ tooltip: qsTr("Reset value")
+ onClicked: root.reset()
+ }
+
+ }
+
Loader {
id: valueLoader
Layout.fillWidth: true
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectNodesComboBox.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectNodesComboBox.qml
index dbab36051d2..d829f42318b 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectNodesComboBox.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectNodesComboBox.qml
@@ -22,6 +22,8 @@ StudioControls.ComboBox {
readonly property int popupHeight: Math.min(800, row.height + 2)
+ property bool nodeJustAdded: false
+
function calculateWindowGeometry() {
var globalPos = EffectComposerBackend.rootView.globalPos(mainRoot.mapFromItem(root, 0, 0))
var screenRect = EffectComposerBackend.rootView.screenRect();
@@ -72,7 +74,7 @@ StudioControls.ComboBox {
Window {
id: window
- flags: Qt.Dialog | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
+ flags: Qt.Tool | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
onActiveFocusItemChanged: {
if (!window.activeFocusItem && !root.hovered && root.popup.opened)
@@ -117,6 +119,7 @@ StudioControls.ComboBox {
onAddEffectNode: (nodeQenPath) => {
EffectComposerBackend.rootView.addEffectNode(modelData.nodeQenPath)
root.popup.close()
+ root.nodeJustAdded = true
}
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/PreviewImagesComboBox.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/PreviewImagesComboBox.qml
index 2a35606a14a..201fab9699d 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/PreviewImagesComboBox.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/PreviewImagesComboBox.qml
@@ -108,7 +108,7 @@ StudioControls.ComboBox {
Window {
id: window
- flags: Qt.Dialog | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
+ flags: Qt.Tool | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
onActiveFocusItemChanged: {
if (!window.activeFocusItem && !root.hovered && root.popup.opened)
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml
index d1bb00d9237..65b01be4573 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml
@@ -50,11 +50,13 @@ StudioControls.Dialog {
if (/[^A-Za-z0-9_]+/.test(text))
errMsg = qsTr("Name contains invalid characters.")
else if (!/^[A-Z]/.test(text))
- errMsg = qsTr("Name must start with a capital letter")
+ errMsg = qsTr("Name must start with a capital letter.")
else if (text.length < 3)
- errMsg = qsTr("Name must have at least 3 characters")
+ errMsg = qsTr("Name must have at least 3 characters.")
else if (/\s/.test(text))
- errMsg = qsTr("Name cannot contain white space")
+ errMsg = qsTr("Name cannot contain white space.")
+ else if (EffectComposerBackend.effectComposerModel.nameExists(text))
+ errMsg = qsTr("Name is already taken.")
emptyText.text = errMsg
btnSave.enabled = errMsg.length === 0
@@ -90,7 +92,7 @@ StudioControls.Dialog {
EffectComposerBackend.effectComposerModel.saveComposition(nameText.text)
if (root.clearOnClose) {
- EffectComposerBackend.effectComposerModel.clear()
+ EffectComposerBackend.effectComposerModel.clear(true)
root.clearOnClose = false
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueChannel.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueChannel.qml
new file mode 100644
index 00000000000..a089caf3efb
--- /dev/null
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueChannel.qml
@@ -0,0 +1,15 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import StudioTheme as StudioTheme
+import StudioControls as StudioControls
+
+Row {
+ StudioControls.ComboBox {
+ model: ["R", "G", "B", "A"]
+ actionIndicatorVisible: false
+ Component.onCompleted: currentIndex = uniformValue ?? 3
+ onActivated: uniformValue = currentIndex
+ }
+}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml
index 4b00bd76135..f7482260b58 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml
@@ -15,8 +15,14 @@ Row {
StudioControls.ColorEditor {
actionIndicatorVisible: false
- Component.onCompleted: color = uniformValue
+ // color: uniformValue binding can get overwritten by normal operation of the control
+ property color resetValue: uniformValue
- onColorChanged: uniformValue = color
+ onResetValueChanged: color = uniformValue
+ Component.onCompleted: color = uniformValue
+ onColorChanged: {
+ if (uniformValue !== color)
+ uniformValue = color
+ }
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml
index 61c5dca825f..969d7e29492 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick
+import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
@@ -10,19 +11,22 @@ Row {
width: parent.width
spacing: 5
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: spinBox
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue
+ onResetValueChanged: value = resetValue
+
width: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue
- realTo: uniformMaxValue
- realValue: uniformValue
- realStepSize: .01
+ minimumValue: uniformMinValue
+ maximumValue: uniformMaxValue
+ value: uniformValue
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue = realValue
+ onValueModified: uniformValue = value
}
StudioControls.Slider {
@@ -39,7 +43,7 @@ Row {
value: uniformValue
onMoved: {
uniformValue = value
- spinBox.realValue = value // binding isn't working for this property so update it
+ spinBox.value = value // binding isn't working for this property so update it
}
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueImage.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueImage.qml
index b172eb302eb..bed9dfdce0c 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueImage.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueImage.qml
@@ -13,14 +13,17 @@ Row {
HelperWidgets.UrlChooser {
backendValue: uniformBackendValue
+ resourcesPath: EffectComposerBackend.rootView.imagesPath()
actionIndicatorVisible: false
comboBox.width: Math.min(parent.width - 70, 300)
onAbsoluteFilePathChanged: uniformValue = absoluteFilePath
- function defaultAsString() {
- let urlStr = uniformDefaultValue.toString()
+ function defaultAsString(defaultPath) {
+ if (!defaultPath)
+ return undefined
+ let urlStr = defaultPath.toString()
urlStr = urlStr.replace(/^(file:\/{3})/, "")
// Prepend slash if there is no drive letter
@@ -30,7 +33,24 @@ Row {
return urlStr
}
- defaultItems: uniformDefaultValue ? [uniformDefaultValue.split('/').pop()] : undefined
- defaultPaths: uniformDefaultValue ? [defaultAsString(uniformDefaultValue)] : undefined
+ Component.onCompleted: {
+ let originalPath = defaultAsString(
+ EffectComposerBackend.rootView.uniformDefaultImage(nodeName, uniformName))
+ let originalName = originalPath ? originalPath.split('/').pop() : undefined
+ if (originalName) {
+ defaultItems = [originalName]
+ defaultPaths = [originalPath]
+ } else {
+ let currentPath = uniformDefaultValue ? defaultAsString(uniformDefaultValue) : undefined
+ let currentName = currentPath ? currentPath.split('/').pop() : undefined
+ if (currentName) {
+ defaultItems = [currentName]
+ defaultPaths = [currentPath]
+ } else {
+ defaultItems = []
+ defaultPaths = []
+ }
+ }
+ }
}
}
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml
index 86ba9ba78d4..d67929168a9 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick
+import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
@@ -10,17 +11,22 @@ Row {
width: parent.width
spacing: 5
- StudioControls.SpinBox {
+ HelperWidgets.DoubleSpinBox {
id: spinBox
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue
+ onResetValueChanged: value = resetValue
+
width: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- from: uniformMinValue
- to: uniformMaxValue
+ minimumValue: uniformMinValue
+ maximumValue: uniformMaxValue
value: uniformValue
- onValueModified: uniformValue = value
+ stepSize: 1
+ decimals: 0
+ onValueModified: uniformValue = Math.round(value)
}
StudioControls.Slider {
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml
index 0685b5f41a2..adb4fe99056 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml
@@ -3,6 +3,7 @@
import QtQuick
import QtQuick.Layouts
+import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
@@ -11,22 +12,25 @@ RowLayout {
width: parent.width
spacing: 0
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vX
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.x
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.x
- realTo: uniformMaxValue.x
- realValue: uniformValue.x
- realStepSize: .01
+ minimumValue: uniformMinValue.x
+ maximumValue: uniformMaxValue.x
+ value: uniformValue.x
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.x = realValue
+ onValueModified: uniformValue.x = value
}
Item { // spacer
@@ -48,22 +52,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vY
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.y
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.y
- realTo: uniformMaxValue.y
- realValue: uniformValue.y
- realStepSize: .01
+ minimumValue: uniformMinValue.y
+ maximumValue: uniformMaxValue.y
+ value: uniformValue.y
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.y = realValue
+ onValueModified: uniformValue.y = value
}
Item { // spacer
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml
index bb33cb68e4f..78573c48f67 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml
@@ -3,6 +3,7 @@
import QtQuick
import QtQuick.Layouts
+import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
@@ -11,22 +12,25 @@ RowLayout {
width: parent.width
spacing: 0
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vX
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.x
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.x
- realTo: uniformMaxValue.x
- realValue: uniformValue.x
- realStepSize: .01
+ minimumValue: uniformMinValue.x
+ maximumValue: uniformMaxValue.x
+ value: uniformValue.x
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.x = realValue
+ onValueModified: uniformValue.x = value
}
Item { // spacer
@@ -48,22 +52,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vY
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.y
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.y
- realTo: uniformMaxValue.y
- realValue: uniformValue.y
- realStepSize: .01
+ minimumValue: uniformMinValue.y
+ maximumValue: uniformMaxValue.y
+ value: uniformValue.y
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.y = realValue
+ onValueModified: uniformValue.y = value
}
Item { // spacer
@@ -85,22 +92,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vZ
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.z
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.z
- realTo: uniformMaxValue.z
- realValue: uniformValue.z
- realStepSize: .01
+ minimumValue: uniformMinValue.z
+ maximumValue: uniformMaxValue.z
+ value: uniformValue.z
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.z = realValue
+ onValueModified: uniformValue.z = value
}
Item { // spacer
diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml
index bcb35161466..61ce8e63893 100644
--- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml
+++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml
@@ -3,6 +3,7 @@
import QtQuick
import QtQuick.Layouts
+import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import EffectComposerBackend
@@ -11,22 +12,25 @@ RowLayout {
width: parent.width
spacing: 0
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vX
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.x
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.x
- realTo: uniformMaxValue.x
- realValue: uniformValue.x
- realStepSize: .01
+ minimumValue: uniformMinValue.x
+ maximumValue: uniformMaxValue.x
+ value: uniformValue.x
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.x = realValue
+ onValueModified: uniformValue.x = value
}
Item { // spacer
@@ -48,22 +52,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vY
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.y
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.y
- realTo: uniformMaxValue.y
- realValue: uniformValue.y
- realStepSize: .01
+ minimumValue: uniformMinValue.y
+ maximumValue: uniformMaxValue.y
+ value: uniformValue.y
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.y = realValue
+ onValueModified: uniformValue.y = value
}
Item { // spacer
@@ -85,22 +92,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vZ
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.z
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.z
- realTo: uniformMaxValue.z
- realValue: uniformValue.z
- realStepSize: .01
+ minimumValue: uniformMinValue.z
+ maximumValue: uniformMaxValue.z
+ value: uniformValue.z
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.z = realValue
+ onValueModified: uniformValue.z = value
}
Item { // spacer
@@ -122,22 +132,25 @@ RowLayout {
Layout.maximumWidth: 20
}
- StudioControls.RealSpinBox {
+ HelperWidgets.DoubleSpinBox {
id: vW
+ // value: uniformValue binding can get overwritten by normal operation of the control
+ property double resetValue: uniformValue.w
+ onResetValueChanged: value = resetValue
+
Layout.fillWidth: true
Layout.minimumWidth: 30
Layout.maximumWidth: 60
- actionIndicatorVisible: false
spinBoxIndicatorVisible: false
inputHAlignment: Qt.AlignHCenter
- realFrom: uniformMinValue.w
- realTo: uniformMaxValue.w
- realValue: uniformValue.w
- realStepSize: .01
+ minimumValue: uniformMinValue.w
+ maximumValue: uniformMaxValue.w
+ value: uniformValue.w
+ stepSize: .01
decimals: 2
- onRealValueModified: uniformValue.w = realValue
+ onValueModified: uniformValue.w = value
}
Item { // spacer
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-16.png
new file mode 100644
index 00000000000..6b16d813978
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png
new file mode 100644
index 00000000000..0549a847587
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png
new file mode 100644
index 00000000000..8876f95ae6e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png
new file mode 100644
index 00000000000..71371f97a35
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png
new file mode 100644
index 00000000000..86b80e95ab5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png
new file mode 100644
index 00000000000..4ad2a9011b2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png b/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png
new file mode 100644
index 00000000000..ff2bbbd140f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png
new file mode 100644
index 00000000000..da40bc69a2b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png
new file mode 100644
index 00000000000..b3ebdf745b7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png
new file mode 100644
index 00000000000..476df8640fc
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png
new file mode 100644
index 00000000000..ecc583b859a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png
new file mode 100644
index 00000000000..ee181f57cc8
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png
new file mode 100644
index 00000000000..2588277e531
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png
new file mode 100644
index 00000000000..6ae703de646
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png
new file mode 100644
index 00000000000..f2133ca7167
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png
new file mode 100644
index 00000000000..9336b81b6e8
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png
new file mode 100644
index 00000000000..98f245d6240
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png
new file mode 100644
index 00000000000..294d1574ae6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png
new file mode 100644
index 00000000000..bef7f80e3ec
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png
new file mode 100644
index 00000000000..5418a0f55ad
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png
new file mode 100644
index 00000000000..17f7ed0688a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png
new file mode 100644
index 00000000000..fb4fb339103
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png
new file mode 100644
index 00000000000..666d1ed93f7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png
new file mode 100644
index 00000000000..5aa57d7f488
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png
new file mode 100644
index 00000000000..bb2278ff899
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png
new file mode 100644
index 00000000000..c44909f6dde
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png
new file mode 100644
index 00000000000..5c921deb136
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png
new file mode 100644
index 00000000000..f90a1ba7dce
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png
new file mode 100644
index 00000000000..ee669b3a888
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png
new file mode 100644
index 00000000000..8d89eab8413
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png
new file mode 100644
index 00000000000..51c5601de02
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png
new file mode 100644
index 00000000000..8d963e2bab5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png
new file mode 100644
index 00000000000..0cd116d13cd
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png
new file mode 100644
index 00000000000..3247384285d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png
new file mode 100644
index 00000000000..2d31b17c65f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png
new file mode 100644
index 00000000000..15fc3505ba2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png
new file mode 100644
index 00000000000..5f82390596b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png
new file mode 100644
index 00000000000..9c7df42bc70
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png
new file mode 100644
index 00000000000..99941541c6f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png
new file mode 100644
index 00000000000..f66349a63b2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png
new file mode 100644
index 00000000000..fd9e4e8ff3f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png
new file mode 100644
index 00000000000..31c765483e2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png
new file mode 100644
index 00000000000..22604d24925
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png
new file mode 100644
index 00000000000..564226e949b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png
new file mode 100644
index 00000000000..a3b6c7f6f24
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png
new file mode 100644
index 00000000000..de8906a724d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png
new file mode 100644
index 00000000000..7ca04a01eaa
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png
new file mode 100644
index 00000000000..5a55bd9f77a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png
new file mode 100644
index 00000000000..cd21394e465
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png
new file mode 100644
index 00000000000..7beee2fab0e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png
new file mode 100644
index 00000000000..b3b63e35235
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png
new file mode 100644
index 00000000000..8d8c7c09b05
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png
new file mode 100644
index 00000000000..22547a16b83
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png
new file mode 100644
index 00000000000..278690f07f2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png
new file mode 100644
index 00000000000..a286efb0324
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png
new file mode 100644
index 00000000000..47abb7f9e3a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png
new file mode 100644
index 00000000000..d9027813d05
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png
new file mode 100644
index 00000000000..a8a0bf65a46
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png
new file mode 100644
index 00000000000..a2f7bf93d37
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png
new file mode 100644
index 00000000000..bdc22539596
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png
new file mode 100644
index 00000000000..d7ab9de8a7d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png
new file mode 100644
index 00000000000..b28b0fa4d9b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png
new file mode 100644
index 00000000000..1f5f6966c04
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png
new file mode 100644
index 00000000000..cf252f08b8c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png
new file mode 100644
index 00000000000..67be7b474d6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png
new file mode 100644
index 00000000000..f8fa80970eb
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png
new file mode 100644
index 00000000000..fc3deff8499
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png
new file mode 100644
index 00000000000..0dff9a075d1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png
new file mode 100644
index 00000000000..50c6f75cd81
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png
new file mode 100644
index 00000000000..b3ffdea6ebb
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png
new file mode 100644
index 00000000000..32abc8bf1e6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png
new file mode 100644
index 00000000000..e5b65ad53bb
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png
new file mode 100644
index 00000000000..8b876f38ec8
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png
new file mode 100644
index 00000000000..47b34f9d14b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png
new file mode 100644
index 00000000000..10d0b69a7bc
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png
new file mode 100644
index 00000000000..4374b60e7a6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png
new file mode 100644
index 00000000000..7457fbd7e19
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png
new file mode 100644
index 00000000000..038a02ed86b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png
new file mode 100644
index 00000000000..af233a0df3c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png
new file mode 100644
index 00000000000..5542ecf8bf7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png
new file mode 100644
index 00000000000..9cf4324819f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png
new file mode 100644
index 00000000000..80dab3c716a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png
new file mode 100644
index 00000000000..318ce0874a5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png
new file mode 100644
index 00000000000..3aa46b61062
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png
new file mode 100644
index 00000000000..cc849189756
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png
new file mode 100644
index 00000000000..af81cdfdb17
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png
new file mode 100644
index 00000000000..46d3ec1dbc1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png
new file mode 100644
index 00000000000..f05aa57c2f5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png
new file mode 100644
index 00000000000..822cf3e7b8b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png
new file mode 100644
index 00000000000..b3ed007a0e3
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png
new file mode 100644
index 00000000000..cb81308ff8d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png
new file mode 100644
index 00000000000..6e1c9f912a2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png
new file mode 100644
index 00000000000..788bef078ce
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png
new file mode 100644
index 00000000000..b68d3845685
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png
new file mode 100644
index 00000000000..7001413d3b0
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png
new file mode 100644
index 00000000000..5a2f3c203b4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png
new file mode 100644
index 00000000000..2657bf21814
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png
new file mode 100644
index 00000000000..b1d3fb67d27
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png
new file mode 100644
index 00000000000..29082eacf16
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png
new file mode 100644
index 00000000000..4a2b093259e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png
new file mode 100644
index 00000000000..750b13bd02d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png
new file mode 100644
index 00000000000..515287a8462
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png
new file mode 100644
index 00000000000..1b31ddc8260
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png
new file mode 100644
index 00000000000..86ae5914aca
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png
new file mode 100644
index 00000000000..fe316caf8d8
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png
new file mode 100644
index 00000000000..bc8725fb5ff
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png
new file mode 100644
index 00000000000..04a25e13db3
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png
new file mode 100644
index 00000000000..b5ac87e8991
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png
new file mode 100644
index 00000000000..bc6810b6053
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png
new file mode 100644
index 00000000000..23db032f4ab
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png
new file mode 100644
index 00000000000..edb6b377bbd
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png
new file mode 100644
index 00000000000..0fb8967564c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png
new file mode 100644
index 00000000000..7be0ee813ba
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png
new file mode 100644
index 00000000000..62ebe487ffe
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png
new file mode 100644
index 00000000000..2b8048441c3
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png
new file mode 100644
index 00000000000..55bb116a699
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png
new file mode 100644
index 00000000000..8dc82b8196a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png
new file mode 100644
index 00000000000..a6a61f61b21
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png
new file mode 100644
index 00000000000..d654a8e7e62
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png
new file mode 100644
index 00000000000..a023f73c30f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png
new file mode 100644
index 00000000000..6fede21d8c2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png
new file mode 100644
index 00000000000..00694003356
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png
new file mode 100644
index 00000000000..d38170e22f7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png
new file mode 100644
index 00000000000..07b46a8ab08
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png
new file mode 100644
index 00000000000..4bbddda4b25
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png
new file mode 100644
index 00000000000..1c4c7b29487
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png
new file mode 100644
index 00000000000..3be4624ddd4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png
new file mode 100644
index 00000000000..aee69b3302f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png
new file mode 100644
index 00000000000..3997195f72c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png
new file mode 100644
index 00000000000..72893106ae9
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png
new file mode 100644
index 00000000000..150fa50ea2f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png
new file mode 100644
index 00000000000..efe3ca80b46
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png
new file mode 100644
index 00000000000..775a57a38c3
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png
new file mode 100644
index 00000000000..bb541b67112
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png
new file mode 100644
index 00000000000..d4b470dc25b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png
new file mode 100644
index 00000000000..f6f3666639e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png
new file mode 100644
index 00000000000..4553e165e75
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png
new file mode 100644
index 00000000000..1c5be822459
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png
new file mode 100644
index 00000000000..a7e654c9183
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png
new file mode 100644
index 00000000000..48c99f8c0e0
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png
new file mode 100644
index 00000000000..5ef73ff19f5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png
new file mode 100644
index 00000000000..f8ca7a36853
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png
new file mode 100644
index 00000000000..0eb7f9665ec
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png
new file mode 100644
index 00000000000..bd0a9729bea
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png
new file mode 100644
index 00000000000..a08622df89c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png
new file mode 100644
index 00000000000..93842e4cdde
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png
new file mode 100644
index 00000000000..676fe134042
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png
new file mode 100644
index 00000000000..29f7f14db30
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png
new file mode 100644
index 00000000000..a518cada63b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png
new file mode 100644
index 00000000000..37277c5e43c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png
new file mode 100644
index 00000000000..f88711dd25f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png
new file mode 100644
index 00000000000..b62a3bad512
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png
new file mode 100644
index 00000000000..a6ced34925b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png
new file mode 100644
index 00000000000..0f19d0efa3e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png
new file mode 100644
index 00000000000..9b5ef9517bd
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png
new file mode 100644
index 00000000000..031cb27c367
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png
new file mode 100644
index 00000000000..446c4696900
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png
new file mode 100644
index 00000000000..0ccb978c469
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png
new file mode 100644
index 00000000000..e0181592860
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png
new file mode 100644
index 00000000000..9abd2756592
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png
new file mode 100644
index 00000000000..787f54ca41f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png
new file mode 100644
index 00000000000..068ebeef0f1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png
new file mode 100644
index 00000000000..b96ed468cbe
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png
new file mode 100644
index 00000000000..3b7cb6d5da2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png
new file mode 100644
index 00000000000..29a81f5d6c9
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png
new file mode 100644
index 00000000000..ee7cc512cb0
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png
new file mode 100644
index 00000000000..1df8f765de4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png
new file mode 100644
index 00000000000..c743c220744
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png
new file mode 100644
index 00000000000..3ceef6d0371
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png
new file mode 100644
index 00000000000..666644d2d30
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png
new file mode 100644
index 00000000000..f1b2dc0f84d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png
new file mode 100644
index 00000000000..4afc1fbab56
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png
new file mode 100644
index 00000000000..c32ecc71a9a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png
new file mode 100644
index 00000000000..ba5537acefe
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png
new file mode 100644
index 00000000000..c4a62a6582b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png
new file mode 100644
index 00000000000..e05fd41b9a4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png
new file mode 100644
index 00000000000..d4ecf00031f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png
new file mode 100644
index 00000000000..31b8fed6668
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png
new file mode 100644
index 00000000000..c675d5a7072
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png
new file mode 100644
index 00000000000..bd9419aaa0c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png
new file mode 100644
index 00000000000..ff2d487cc95
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png
new file mode 100644
index 00000000000..5cb5b2e1af1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png
new file mode 100644
index 00000000000..569373afa13
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png
new file mode 100644
index 00000000000..fd9e6ceebcc
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png
new file mode 100644
index 00000000000..3298f695190
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png
new file mode 100644
index 00000000000..9ab7861c25f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png
new file mode 100644
index 00000000000..e5958cded3f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png
new file mode 100644
index 00000000000..5e99f06f2ef
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png
new file mode 100644
index 00000000000..68f22c5df1b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png
new file mode 100644
index 00000000000..549c11c67cf
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png
new file mode 100644
index 00000000000..98eb8232a26
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png
new file mode 100644
index 00000000000..ff5f95cf327
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png
new file mode 100644
index 00000000000..236abf0cfe2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png
new file mode 100644
index 00000000000..caf9c16a61d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png
new file mode 100644
index 00000000000..df1b84e5c99
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png
new file mode 100644
index 00000000000..4b9f31faf39
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png
new file mode 100644
index 00000000000..f00afc52e97
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png
new file mode 100644
index 00000000000..fd3c89c0817
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png
new file mode 100644
index 00000000000..0f651a1013f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png
new file mode 100644
index 00000000000..22904f2f8b9
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png
new file mode 100644
index 00000000000..ac7be01bb71
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo b/share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo
new file mode 100644
index 00000000000..2e3616aa4b5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo
@@ -0,0 +1,84 @@
+MetaInfo {
+ Type {
+ name: "QtMultimedia.MediaPlayer"
+ icon: "images/media-player-16px.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Media Player"
+ category: "f.Qt Quick - Multimedia"
+ libraryIcon: "images/media-player-24px.png"
+ version: "6.0"
+ requiredImport: "QtMultimedia"
+ }
+ }
+
+ Type {
+ name: "QtMultimedia.AudioOutput"
+ icon: "images/audio-output-16px.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Audio Output"
+ category: "f.Qt Quick - Multimedia"
+ libraryIcon: "images/audio-output-24px.png"
+ version: "6.0"
+ requiredImport: "QtMultimedia"
+ }
+ }
+
+ Type {
+ name: "QtMultimedia.VideoOutput"
+ icon: "images/video-output-16px.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Video Output"
+ category: "f.Qt Quick - Multimedia"
+ libraryIcon: "images/video-output-24px.png"
+ version: "6.0"
+ requiredImport: "QtMultimedia"
+ }
+ }
+
+ Type {
+ name: "QtMultimedia.Video"
+ icon: "images/video-16px.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: true
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Video"
+ category: "f.Qt Quick - Multimedia"
+ libraryIcon: "images/video-24px.png"
+ version: "6.0"
+ requiredImport: "QtMultimedia"
+
+ Property { name: "width"; type: "int"; value: 200; }
+ Property { name: "height"; type: "int"; value: 200; }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/itemLibrary/qml.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qml.metainfo
new file mode 100644
index 00000000000..4bef02ddd39
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/qml.metainfo
@@ -0,0 +1,53 @@
+MetaInfo {
+
+ Type {
+ name: "QML.Component"
+ icon: "images/component-icon16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ }
+
+ ItemLibraryEntry {
+ name: "Component"
+ category: "e.Qt Quick - Instancers"
+ libraryIcon: "images/component-icon.png"
+ version: "1.0"
+
+ QmlSource { source: "source/component.qml" }
+ toolTip: qsTr("Allows you to define components inline, within a QML document.")
+ }
+
+ ItemLibraryEntry {
+ name: "Component 3D"
+ category: "Instancers"
+ libraryIcon: "images/component-icon.png"
+ version: "1.0"
+ requiredImport: "QtQuick3D"
+
+ QmlSource { source: "source/component3d.qml" }
+ toolTip: qsTr("Allows you to define 3D components inline, within a QML document.")
+ }
+ }
+
+Type {
+ name: "QtQml.Base.Timer"
+ icon: "images/timer-16px.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Timer"
+ category: "d.Qt Quick - Animation"
+ libraryIcon: "images/timer-24px.png"
+ version: "2.0"
+ toolTip: qsTr(" Triggers an action at a given time.")
+ }
+}
+}
diff --git a/share/qtcreator/qmldesigner/itemLibrary/qtquickcontrols2.metainfo b/share/qtcreator/qmldesigner/itemLibrary/qtquickcontrols2.metainfo
new file mode 100644
index 00000000000..cd4165957d6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/qtquickcontrols2.metainfo
@@ -0,0 +1,575 @@
+MetaInfo {
+ Type {
+ name: "QtQuick.Controls.Basic.BusyIndicator"
+ icon: "images/busyindicator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Busy Indicator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/busyindicator-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Indicates activity while, for example, content is being loaded.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Button"
+ icon: "images/button-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/button-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A button with text.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.CheckBox"
+ icon: "images/checkbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Check Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/checkbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A checkbox with a text label.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Check Box\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.CheckDelegate"
+ icon: "images/checkbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Check Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/checkbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Presents items from a model as checkboxes.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Check Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ComboBox"
+ icon: "images/combobox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Combo Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/combobox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("An editable drop-down list.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Control"
+ icon: "images/control-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Control"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/control-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("An abstract base type for UI controls.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.DelayButton"
+ icon: "images/button-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Delay Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/delaybutton-icon.png"
+ version: "2.2"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A button with a delay preventing accidental presses.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Delay Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Dial"
+ icon: "images/dial-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Dial"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/dial-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+
+ toolTip: qsTr("A circular dial that is rotated to set a value.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Frame"
+ icon: "images/frame-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Frame"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/frame-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("An untitled container for a group of controls.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.GroupBox"
+ icon: "images/groupbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Group Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/groupbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A titled container for a group of controls.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ Property { name: "title"; type: "binding"; value: "qsTr(\"Group Box\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ItemDelegate"
+ icon: "images/itemdelegate-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Item Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/itemdelegate-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Presents a standard view item. It can be used as a delegate in various views and controls, such as ListView and ComboBox.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Item Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Label"
+ icon: "images/label-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Label"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/label-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A text label.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Label\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Page"
+ icon: "images/page-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Page"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/page-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A page with header and footer.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.PageIndicator"
+ icon: "images/pageindicator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Page Indicator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/pageindicator-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Indicates the currently active page.")
+
+ Property { name: "count"; type: "int"; value: 3 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Pane"
+ icon: "images/pane-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Pane"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/pane-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Provides a background matching the application style and theme.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ProgressBar"
+ icon: "images/progressbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Progress Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/progressbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A bar indicating the progress of an operation.")
+
+ Property { name: "value"; type: "real"; value: 0.5 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.RadioButton"
+ icon: "images/radiobutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Radio Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/radiobutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("An option button that you can toggle on or off.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.RadioDelegate"
+ icon: "images/radiobutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Radio Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/radiobutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Presents items from a model as radio buttons.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.RangeSlider"
+ icon: "images/rangeslider-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Range Slider"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/rangeslider-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A bar with adjustable start and end points.")
+
+ Property { name: "first.value"; type: "real"; value: 0.25 }
+ Property { name: "second.value"; type: "real"; value: 0.75 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.RoundButton"
+ icon: "images/roundbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Round Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/roundbutton-icon.png"
+ version: "2.1"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A round button with text.")
+
+ Property { name: "text"; type: "string"; value: "+" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Slider"
+ icon: "images/slider-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Slider"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/slider-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("An adjustable slider.")
+
+ Property { name: "value"; type: "real"; value: 0.5 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.SpinBox"
+ icon: "images/spinbox-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Spin Box"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/spinbox-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A box with an adjustable number.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ScrollView"
+ icon: "images/scrollview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Scroll View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/scrollview-icon.png"
+ version: "2.2"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A scrollable area.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.StackView"
+ icon: "images/stackview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Stack View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/stackview-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Provides a stack-based navigation for a set of pages.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.SwipeDelegate"
+ icon: "images/itemdelegate-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Swipe Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/itemdelegate-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Presents items from a model as items that you can swipe to expose more options.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Swipe Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.SwipeView"
+ icon: "images/swipeview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Swipe View"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/swipeview-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Provides a view where you can navigate pages by swiping.")
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Switch"
+ icon: "images/switch-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Switch"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/switch-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A button that you can toggle on and off.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Switch\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.SwitchDelegate"
+ icon: "images/switch-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Switch Delegate"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/switch-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("Presents items from a model as toggle switches.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Switch Delegate\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.TabBar"
+ icon: "images/toolbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tab Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A tab-based navigation model.")
+
+ Property { name: "width"; type: "int"; value: 240 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.TabButton"
+ icon: "images/toolbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tab Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A button suitable for a tab bar.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Tab Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.TextArea"
+ icon: "images/textarea-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Text Area"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/textarea-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A multi-line text box.")
+
+ Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Area\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.TextField"
+ icon: "images/textfield-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Text Field"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/textfield-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A single-line text box.")
+
+ Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Field\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ToolBar"
+ icon: "images/toolbar-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Bar"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbar-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A row that can hold actions and buttons.")
+
+ Property { name: "width"; type: "int"; value: 360 }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ToolButton"
+ icon: "images/toolbutton-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Button"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolbutton-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A button suitable for a tool bar.")
+
+ Property { name: "text"; type: "binding"; value: "qsTr(\"Tool Button\")" }
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.ToolSeparator"
+ icon: "images/toolseparator-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tool Separator"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/toolseparator-icon.png"
+ version: "2.1"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A line to separate sections in a tool bar.")
+ }
+ }
+
+ Type {
+ name: "QtQuick.Controls.Basic.Tumbler"
+ icon: "images/tumbler-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Tumbler"
+ category: "Qt Quick - Controls 2"
+ libraryIcon: "images/tumbler-icon.png"
+ version: "2.0"
+ requiredImport: "QtQuick.Controls"
+ toolTip: qsTr("A spinnable wheel of selectable items.")
+
+ Property { name: "model"; type: "int"; value: "10" }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/quick.metainfo b/share/qtcreator/qmldesigner/itemLibrary/quick.metainfo
index f390f72260d..98e5684bdc7 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/quick.metainfo
+++ b/share/qtcreator/qmldesigner/itemLibrary/quick.metainfo
@@ -2,7 +2,7 @@ MetaInfo {
Type {
name: "QtQuick.Item"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleNonDefaultProperties: "layer.effect"
@@ -11,7 +11,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Item"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 200; }
@@ -22,12 +22,12 @@ MetaInfo {
Type {
name: "QtQuick.Rectangle"
- icon: ":/qtquickplugin/images/rect-icon16.png"
+ icon: "images/rect-icon16.png"
ItemLibraryEntry {
name: "Rectangle"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/rect-icon.png"
+ libraryIcon: "images/rect-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 200; }
@@ -39,12 +39,12 @@ MetaInfo {
Type {
name: "QtQuick.Text"
- icon: ":/qtquickplugin/images/text-icon16.png"
+ icon: "images/text-icon16.png"
ItemLibraryEntry {
name: "Text"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/text-icon.png"
+ libraryIcon: "images/text-icon.png"
version: "2.0"
Property { name: "font.pixelSize"; type: "int"; value: 12; }
@@ -55,12 +55,12 @@ MetaInfo {
Type {
name: "QtQuick.TextEdit"
- icon: ":/qtquickplugin/images/text-edit-icon16.png"
+ icon: "images/text-edit-icon16.png"
ItemLibraryEntry {
name: "Text Edit"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/text-edit-icon.png"
+ libraryIcon: "images/text-edit-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 80; }
@@ -73,12 +73,12 @@ MetaInfo {
Type {
name: "QtQuick.TextInput"
- icon: ":/qtquickplugin/images/text-input-icon16.png"
+ icon: "images/text-input-icon16.png"
ItemLibraryEntry {
name: "Text Input"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/text-input-icon.png"
+ libraryIcon: "images/text-input-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 80; }
@@ -91,12 +91,12 @@ MetaInfo {
Type {
name: "QtQuick.MouseArea"
- icon: ":/qtquickplugin/images/mouse-area-icon16.png"
+ icon: "images/mouse-area-icon16.png"
ItemLibraryEntry {
name: "Mouse Area"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/mouse-area-icon.png"
+ libraryIcon: "images/mouse-area-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 100; }
@@ -107,17 +107,17 @@ MetaInfo {
Type {
name: "QtQuick.Image"
- icon: ":/qtquickplugin/images/image-icon16.png"
+ icon: "images/image-icon16.png"
ItemLibraryEntry {
name: "Image"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/image-icon.png"
+ libraryIcon: "images/image-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 100; }
Property { name: "height"; type: "int"; value: 100; }
- Property { name: "source"; type: "QUrl"; value:"qrc:/qtquickplugin/images/template_image.png"; }
+ Property { name: "source"; type: "QUrl"; value:"qrcimages/template_image.png"; }
Property { name: "fillMode"; type: "enum"; value: "Image.PreserveAspectFit"; }
toolTip: qsTr("Displays an image.")
}
@@ -125,29 +125,29 @@ MetaInfo {
Type {
name: "QtQuick.AnimatedImage"
- icon: ":/qtquickplugin/images/animated-image-icon16.png"
+ icon: "images/animated-image-icon16.png"
ItemLibraryEntry {
name: "Animated Image"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/animated-image-icon.png"
+ libraryIcon: "images/animated-image-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 100; }
Property { name: "height"; type: "int"; value: 100; }
- Property { name: "source"; type: "QUrl"; value:"qrc:/qtquickplugin/images/template_image.png"; }
+ Property { name: "source"; type: "QUrl"; value:"qrcimages/template_image.png"; }
toolTip: qsTr("Animates a series of images.")
}
}
Type {
name: "QtQuick.AnimatedSprite"
- icon: ":/qtquickplugin/images/animated-image-icon16.png"
+ icon: "images/animated-image-icon16.png"
ItemLibraryEntry {
name: "Animated Sprite"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/animated-image-icon.png"
+ libraryIcon: "images/animated-image-icon.png"
version: "2.0"
Property { name: "frameWidth"; type: "int"; value: 64; }
@@ -155,36 +155,36 @@ MetaInfo {
Property { name: "frameCount"; type: "int"; value: 4; }
Property { name: "frameDuration"; type: "int"; value: 500; }
Property { name: "source"; type: "QUrl"; value:"animatedsprite-loading.png"; }
- ExtraFile { source: ":/qtquickplugin/images/animatedsprite-loading.png" }
+ ExtraFile { source: "images/animatedsprite-loading.png" }
toolTip: qsTr("Draws a sprite animation.")
}
}
Type {
name: "QtQuick.BorderImage"
- icon: ":/qtquickplugin/images/border-image-icon16.png"
+ icon: "images/border-image-icon16.png"
ItemLibraryEntry {
name: "Border Image"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/border-image-icon.png"
+ libraryIcon: "images/border-image-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 100; }
Property { name: "height"; type: "int"; value: 100; }
- Property { name: "source"; type: "QUrl"; value:"qrc:/qtquickplugin/images/template_image.png"; }
+ Property { name: "source"; type: "QUrl"; value:"qrcimages/template_image.png"; }
toolTip: qsTr("A responsive border based on an image.")
}
}
Type {
name: "QtQuick.Flickable"
- icon: ":/qtquickplugin/images/flickable-icon16.png"
+ icon: "images/flickable-icon16.png"
ItemLibraryEntry {
name: "Flickable"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/flickable-icon.png"
+ libraryIcon: "images/flickable-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 300; }
@@ -195,57 +195,57 @@ MetaInfo {
Type {
name: "QtQuick.GridView"
- icon: ":/qtquickplugin/images/gridview-icon16.png"
+ icon: "images/gridview-icon16.png"
ItemLibraryEntry {
name: "Grid View"
category: "b.Qt Quick - Views"
- libraryIcon: ":/qtquickplugin/images/gridview-icon.png"
+ libraryIcon: "images/gridview-icon.png"
version: "2.0"
- QmlSource { source: ":/qtquickplugin/source/gridviewv2.qml" }
+ QmlSource { source: "source/gridviewv2.qml" }
toolTip: qsTr("Organizes dynamic data sets in a grid.")
}
}
Type {
name: "QtQuick.ListView"
- icon: ":/qtquickplugin/images/listview-icon16.png"
+ icon: "images/listview-icon16.png"
ItemLibraryEntry {
name: "List View"
category: "b.Qt Quick - Views"
- libraryIcon: ":/qtquickplugin/images/listview-icon.png"
+ libraryIcon: "images/listview-icon.png"
version: "2.0"
- QmlSource { source: ":/qtquickplugin/source/listviewv2.qml" }
+ QmlSource { source: "source/listviewv2.qml" }
toolTip: qsTr("Organizes dynamic data sets in a list.")
}
}
Type {
name: "QtQuick.PathView"
- icon: ":/qtquickplugin/images/pathview-icon16.png"
+ icon: "images/pathview-icon16.png"
ItemLibraryEntry {
name: "Path View"
category: "b.Qt Quick - Views"
- libraryIcon: ":/qtquickplugin/images/pathview-icon.png"
+ libraryIcon: "images/pathview-icon.png"
version: "2.0"
- QmlSource { source: ":/qtquickplugin/source/pathviewv2.qml" }
+ QmlSource { source: "source/pathviewv2.qml" }
toolTip: qsTr("Organizes dynamic data sets along a path.")
}
}
Type {
name: "QtQuick.FocusScope"
- icon: ":/qtquickplugin/images/focusscope-icon16.png"
+ icon: "images/focusscope-icon16.png"
ItemLibraryEntry {
name: "Focus Scope"
category: "a.Qt Quick - Basic"
- libraryIcon: ":/qtquickplugin/images/focusscope-icon.png"
+ libraryIcon: "images/focusscope-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 100; }
@@ -256,12 +256,12 @@ MetaInfo {
Type {
name: "QtQuick.Column"
- icon: ":/qtquickplugin/images/column-positioner-icon-16px.png"
+ icon: "images/column-positioner-icon-16px.png"
ItemLibraryEntry {
name: "Column"
category: "c.Qt Quick - Positioner"
- libraryIcon: ":/qtquickplugin/images/column-positioner-icon.png"
+ libraryIcon: "images/column-positioner-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 200; }
@@ -273,12 +273,12 @@ MetaInfo {
Type {
name: "QtQuick.Row"
- icon: ":/qtquickplugin/images/row-positioner-icon-16px.png"
+ icon: "images/row-positioner-icon-16px.png"
ItemLibraryEntry {
name: "Row"
category: "c.Qt Quick - Positioner"
- libraryIcon: ":/qtquickplugin/images/row-positioner-icon.png"
+ libraryIcon: "images/row-positioner-icon.png"
version: "2.0"
toolTip: qsTr("Organizes items in a row.")
@@ -289,12 +289,12 @@ MetaInfo {
Type {
name: "QtQuick.Grid"
- icon: ":/qtquickplugin/images/grid-positioner-icon-16px.png"
+ icon: "images/grid-positioner-icon-16px.png"
ItemLibraryEntry {
name: "Grid"
category: "c.Qt Quick - Positioner"
- libraryIcon: ":/qtquickplugin/images/grid-positioner-icon.png"
+ libraryIcon: "images/grid-positioner-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 400; }
@@ -305,12 +305,12 @@ MetaInfo {
Type {
name: "QtQuick.Flow"
- icon: ":/qtquickplugin/images/flow-positioner-icon-16px.png"
+ icon: "images/flow-positioner-icon-16px.png"
ItemLibraryEntry {
name: "Flow"
category: "c.Qt Quick - Positioner"
- libraryIcon: ":/qtquickplugin/images/flow-positioner-icon.png"
+ libraryIcon: "images/flow-positioner-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 400; }
@@ -321,7 +321,7 @@ MetaInfo {
Type {
name: "QtQuick.Timeline.Timeline"
- icon: ":/qtquickplugin/images/timeline-16px.png"
+ icon: "images/timeline-16px.png"
Hints {
visibleNonDefaultProperties: "animations"
@@ -337,7 +337,7 @@ MetaInfo {
Type {
name: "QtQuick.Timeline.TimelineAnimation"
- icon: ":/qtquickplugin/images/timeline-animation-16px.png"
+ icon: "images/timeline-animation-16px.png"
Hints {
visibleInLibrary: false
@@ -352,7 +352,7 @@ MetaInfo {
Type {
name: "QtQuick.Timeline.Keyframe"
- icon: ":/qtquickplugin/images/keyframe-16px.png"
+ icon: "images/keyframe-16px.png"
ItemLibraryEntry {
name: "Keyframe"
@@ -364,7 +364,7 @@ MetaInfo {
Type {
name: "QtQuick.Timeline.KeyframeGroup"
- icon: ":/qtquickplugin/images/keyframe-16px.png"
+ icon: "images/keyframe-16px.png"
ItemLibraryEntry {
name: "KeyframeGroup"
@@ -376,7 +376,7 @@ MetaInfo {
Type {
name: "QtQuick.PropertyAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -388,7 +388,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Property Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Animates changes in property values.")
}
@@ -396,7 +396,7 @@ MetaInfo {
Type {
name: "QtQuick.PauseAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -408,7 +408,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Pause Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Provides a pause between animations.")
}
@@ -416,7 +416,7 @@ MetaInfo {
Type {
name: "QtQuick.SequentialAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -427,7 +427,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Sequential Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Runs animations one after the other.")
}
@@ -435,7 +435,7 @@ MetaInfo {
Type {
name: "QtQuick.ParallelAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -446,7 +446,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Parallel Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Runs animations together at the same time.")
}
@@ -454,7 +454,7 @@ MetaInfo {
Type {
name: "QtQuick.PropertyAction"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -466,7 +466,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Property Action"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Provides an immediate property change during animations.")
}
@@ -474,7 +474,7 @@ MetaInfo {
Type {
name: "QtQuick.ScriptAction"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -486,7 +486,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Script Action"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Runs a script during animation.")
}
@@ -494,7 +494,7 @@ MetaInfo {
Type {
name: "QtQuick.ColorAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -506,7 +506,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Color Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
toolTip: qsTr("Animates the color of an item.")
}
@@ -514,7 +514,7 @@ MetaInfo {
Type {
name: "QtQuick.NumberAnimation"
- icon: ":/qtquickplugin/images/item-icon16.png"
+ icon: "images/item-icon16.png"
Hints {
visibleInNavigator: true
@@ -526,7 +526,7 @@ MetaInfo {
ItemLibraryEntry {
name: "Number Animation"
category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/item-icon.png"
+ libraryIcon: "images/item-icon.png"
version: "2.0"
Property { name: "to"; type: "int"; value: 0; }
Property { name: "from"; type: "int"; value: 0; }
@@ -535,74 +535,13 @@ MetaInfo {
}
Type {
- name: "QtQml.Timer"
- icon: ":/qtquickplugin/images/timer-16px.png"
-
- Hints {
- visibleInNavigator: true
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Timer"
- category: "d.Qt Quick - Animation"
- libraryIcon: ":/qtquickplugin/images/timer-24px.png"
- version: "2.0"
- toolTip: qsTr(" Triggers an action at a given time.")
- }
- }
-
- Type {
- name: "QML.Component"
- icon: ":/qtquickplugin/images/component-icon16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- }
-
- ItemLibraryEntry {
- name: "Component"
- category: "e.Qt Quick - Instancers"
- libraryIcon: ":/qtquickplugin/images/component-icon.png"
- version: "1.0"
-
- QmlSource { source: ":/qtquickplugin/source/component.qml" }
- toolTip: qsTr("Allows you to define components inline, within a QML document.")
- }
- }
-
- Type {
- name: "QML.Component"
- icon: ":/qtquickplugin/images/component-icon16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- }
-
- ItemLibraryEntry {
- name: "Component 3D"
- category: "Instancers"
- libraryIcon: ":/qtquickplugin/images/component-icon.png"
- version: "1.0"
- requiredImport: "QtQuick3D"
-
- QmlSource { source: ":/qtquickplugin/source/component3d.qml" }
- toolTip: qsTr("Allows you to define 3D components inline, within a QML document.")
- }
- }
-
- Type {
name: "QtQuick.Loader"
- icon: ":/qtquickplugin/images/loader-icon16.png"
+ icon: "images/loader-icon16.png"
ItemLibraryEntry {
name: "Loader"
category: "e.Qt Quick - Instancers"
- libraryIcon: ":/qtquickplugin/images/loader-icon.png"
+ libraryIcon: "images/loader-icon.png"
version: "2.0"
Property { name: "width"; type: "int"; value: 200; }
Property { name: "height"; type: "int"; value: 200; }
@@ -612,7 +551,7 @@ MetaInfo {
Type {
name: "QtQuick.Repeater"
- icon: ":/qtquickplugin/images/repeater-icon16.png"
+ icon: "images/repeater-icon16.png"
Hints {
canBeDroppedInFormEditor: false
@@ -622,216 +561,9 @@ MetaInfo {
ItemLibraryEntry {
name: "Repeater"
category: "e.Qt Quick - Instancers"
- libraryIcon: ":/qtquickplugin/images/repeater-icon.png"
+ libraryIcon: "images/repeater-icon.png"
version: "2.0"
toolTip: qsTr("Creates a number of copies of the same item.")
}
}
-
- Type {
- name: "QtMultimedia.MediaPlayer"
- icon: ":/qtquickplugin/images/media-player-16px.png"
-
- Hints {
- visibleInNavigator: true
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Media Player"
- category: "f.Qt Quick - Multimedia"
- libraryIcon: ":/qtquickplugin/images/media-player-24px.png"
- version: "6.0"
- requiredImport: "QtMultimedia"
- }
- }
-
- Type {
- name: "QtMultimedia.AudioOutput"
- icon: ":/qtquickplugin/images/audio-output-16px.png"
-
- Hints {
- visibleInNavigator: true
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Audio Output"
- category: "f.Qt Quick - Multimedia"
- libraryIcon: ":/qtquickplugin/images/audio-output-24px.png"
- version: "6.0"
- requiredImport: "QtMultimedia"
- }
- }
-
- Type {
- name: "QtMultimedia.VideoOutput"
- icon: ":/qtquickplugin/images/video-output-16px.png"
-
- Hints {
- visibleInNavigator: true
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Video Output"
- category: "f.Qt Quick - Multimedia"
- libraryIcon: ":/qtquickplugin/images/video-output-24px.png"
- version: "6.0"
- requiredImport: "QtMultimedia"
- }
- }
-
- Type {
- name: "QtMultimedia.Video"
- icon: ":/qtquickplugin/images/video-16px.png"
-
- Hints {
- visibleInNavigator: true
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: true
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Video"
- category: "f.Qt Quick - Multimedia"
- libraryIcon: ":/qtquickplugin/images/video-24px.png"
- version: "6.0"
- requiredImport: "QtMultimedia"
-
- Property { name: "width"; type: "int"; value: 200; }
- Property { name: "height"; type: "int"; value: 200; }
- }
- }
-
- Type {
- name: "QtQuick3D.SpatialAudio.AmbientSound"
- icon: ":/qtquickplugin/images/ambient-sound-16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Ambient Sound"
- category: "Spatial Audio"
- libraryIcon: ":/qtquickplugin/images/ambient-sound-24.png"
- version: "6.0"
- requiredImport: "QtQuick3D.SpatialAudio"
- toolTip: qsTr("An ambient background sound.")
- }
- }
-
- Type {
- name: "QtQuick3D.SpatialAudio.AudioEngine"
- icon: ":/qtquickplugin/images/audio-engine-16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: false
- canBeContainer: false
- }
-
- ItemLibraryEntry {
- name: "Audio Engine"
- category: "Spatial Audio"
- libraryIcon: ":/qtquickplugin/images/audio-engine-24.png"
- version: "6.0"
- requiredImport: "QtQuick3D.SpatialAudio"
- toolTip: qsTr("Manages sound objects inside a 3D scene.")
- }
- }
-
- Type {
- name: "QtQuick3D.SpatialAudio.AudioListener"
- icon: ":/qtquickplugin/images/audio-listener-16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: true
- }
-
- ItemLibraryEntry {
- name: "Audio Listener"
- category: "Spatial Audio"
- libraryIcon: ":/qtquickplugin/images/audio-listener-24.png"
- version: "6.0"
- requiredImport: "QtQuick3D.SpatialAudio"
- toolTip: qsTr("Sets the position and orientation of listening.")
- }
- }
-
- Type {
- name: "QtQuick3D.SpatialAudio.AudioRoom"
- icon: ":/qtquickplugin/images/audio-room-16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: true
- }
-
- ItemLibraryEntry {
- name: "Audio Room"
- category: "Spatial Audio"
- libraryIcon: ":/qtquickplugin/images/audio-room-24.png"
- version: "6.0"
- requiredImport: "QtQuick3D.SpatialAudio"
- toolTip: qsTr("Sets up a room for the spatial audio engine.")
- }
- }
-
- Type {
- name: "QtQuick3D.SpatialAudio.SpatialSound"
- icon: ":/qtquickplugin/images/spatial-audio-16.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: true
- }
-
- ItemLibraryEntry {
- name: "Spatial Sound"
- category: "Spatial Audio"
- libraryIcon: ":/qtquickplugin/images/spatial-audio-24.png"
- version: "6.0"
- requiredImport: "QtQuick3D.SpatialAudio"
- toolTip: qsTr("A sound object in 3D space.")
- }
- }
-
- Type {
- name: "QtQuick3D.BakedLightmap"
- icon: ":/ItemLibrary/images/item-default-icon.png"
-
- Hints {
- canBeDroppedInNavigator: true
- canBeDroppedInFormEditor: false
- canBeDroppedInView3D: false
- }
-
- ItemLibraryEntry {
- name: "Baked Lightmap"
- category: "Components"
- libraryIcon: ":/ItemLibrary/images/item-default-icon.png"
- version: "6.5"
- requiredImport: "QtQuick3D"
- toolTip: qsTr("An object to specify details about baked lightmap of a model.")
-
- Property { name: "loadPrefix"; type: "string"; value: "lightmaps"; }
- }
- }
}
diff --git a/share/qtcreator/qmldesigner/itemLibrary/quick3d.metainfo b/share/qtcreator/qmldesigner/itemLibrary/quick3d.metainfo
new file mode 100644
index 00000000000..8f006139660
--- /dev/null
+++ b/share/qtcreator/qmldesigner/itemLibrary/quick3d.metainfo
@@ -0,0 +1,125 @@
+MetaInfo {
+ Type {
+ name: "QtQuick3D.SpatialAudio.AmbientSound"
+ icon: "images/ambient-sound-16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Ambient Sound"
+ category: "Spatial Audio"
+ libraryIcon: "images/ambient-sound-24.png"
+ version: "6.0"
+ requiredImport: "QtQuick3D.SpatialAudio"
+ toolTip: qsTr("An ambient background sound.")
+ }
+ }
+
+ Type {
+ name: "QtQuick3D.SpatialAudio.AudioEngine"
+ icon: "images/audio-engine-16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: false
+ canBeContainer: false
+ }
+
+ ItemLibraryEntry {
+ name: "Audio Engine"
+ category: "Spatial Audio"
+ libraryIcon: "images/audio-engine-24.png"
+ version: "6.0"
+ requiredImport: "QtQuick3D.SpatialAudio"
+ toolTip: qsTr("Manages sound objects inside a 3D scene.")
+ }
+ }
+
+ Type {
+ name: "QtQuick3D.SpatialAudio.AudioListener"
+ icon: "images/audio-listener-16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: true
+ }
+
+ ItemLibraryEntry {
+ name: "Audio Listener"
+ category: "Spatial Audio"
+ libraryIcon: "images/audio-listener-24.png"
+ version: "6.0"
+ requiredImport: "QtQuick3D.SpatialAudio"
+ toolTip: qsTr("Sets the position and orientation of listening.")
+ }
+ }
+
+ Type {
+ name: "QtQuick3D.SpatialAudio.AudioRoom"
+ icon: "images/audio-room-16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: true
+ }
+
+ ItemLibraryEntry {
+ name: "Audio Room"
+ category: "Spatial Audio"
+ libraryIcon: "images/audio-room-24.png"
+ version: "6.0"
+ requiredImport: "QtQuick3D.SpatialAudio"
+ toolTip: qsTr("Sets up a room for the spatial audio engine.")
+ }
+ }
+
+ Type {
+ name: "QtQuick3D.SpatialAudio.SpatialSound"
+ icon: "images/spatial-audio-16.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: true
+ }
+
+ ItemLibraryEntry {
+ name: "Spatial Sound"
+ category: "Spatial Audio"
+ libraryIcon: "images/spatial-audio-24.png"
+ version: "6.0"
+ requiredImport: "QtQuick3D.SpatialAudio"
+ toolTip: qsTr("A sound object in 3D space.")
+ }
+ }
+
+ Type {
+ name: "QtQuick3D.BakedLightmap"
+ icon: ":/ItemLibrary/images/item-default-icon.png"
+
+ Hints {
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: false
+ }
+
+ ItemLibraryEntry {
+ name: "Baked Lightmap"
+ category: "Components"
+ libraryIcon: ":/ItemLibrary/images/item-default-icon.png"
+ version: "6.5"
+ requiredImport: "QtQuick3D"
+ toolTip: qsTr("An object to specify details about baked lightmap of a model.")
+
+ Property { name: "loadPrefix"; type: "string"; value: "lightmaps"; }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml
index f72d21b35b6..b01aa7d2a3c 100644
--- a/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml
+++ b/share/qtcreator/qmldesigner/materialBrowserQmlSource/MaterialBrowserContextMenu.qml
@@ -127,4 +127,13 @@ StudioControls.Menu {
onTriggered: materialBrowserModel.addNewMaterial()
}
+
+ Component.onCompleted: {
+ if (MaterialBrowserBackend.rootView.userBundleEnabled()) {
+ var menuItem = Qt.createQmlObject("import StudioControls as StudioControls; StudioControls.MenuItem {}", root)
+ menuItem.text = qsTr("Add to Content Library")
+ menuItem.onTriggered.connect(MaterialBrowserBackend.rootView.addMaterialToContentLibrary)
+ root.addItem(menuItem)
+ }
+ }
}
diff --git a/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/PopupDialogButton.qml b/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/PopupDialogButton.qml
index 8b82443bd07..1f868d77a23 100644
--- a/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/PopupDialogButton.qml
+++ b/share/qtcreator/qmldesigner/newprojectdialog/imports/NewProjectDialog/PopupDialogButton.qml
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick
-import QtQuick.Controls
+import QtQuick.Templates
import StudioTheme as StudioTheme
Button {
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
index f88defbff56..1b626623ead 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml
@@ -33,7 +33,7 @@ Section {
PropertyLabel {
text: qsTr("Smooth")
- tooltip: qsTr("Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items. ")
+ tooltip: qsTr("Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items.")
blockedByTemplate: !backendValues.smooth.isAvailable
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml
index a8536e8ca31..8f3abb2ed19 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Controls/DialSpecifics.qml
@@ -105,6 +105,50 @@ Column {
}
PropertyLabel {
+ text: qsTr("Start angle")
+ tooltip: qsTr("Sets the starting angle of the dial in degrees.")
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ width: implicitWidth
+ maximumValue: backendValues.endAngle.value - 1
+ minimumValue: Math.min (-360, (backendValues.endAngle.value - 360))
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.startAngle
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel {
+ text: qsTr("End angle")
+ tooltip: qsTr("Sets the ending angle of the dial in degrees.")
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ width: implicitWidth
+ maximumValue: Math.min (720, (backendValues.startAngle.value + 360))
+ minimumValue: backendValues.startAngle.value + 1
+ decimals: 2
+ stepSize: 0.1
+ backendValue: backendValues.endAngle
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel {
text: qsTr("Snap mode")
tooltip: qsTr("Sets how the dial's handle snaps to the steps\n"
+ "defined in <b>Step size</b>.")
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml
new file mode 100644
index 00000000000..2b7543f1d99
--- /dev/null
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml
@@ -0,0 +1,509 @@
+// Copyright (C) 2024 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
+
+Section {
+ id: root
+
+ property bool hasDesignerEffect: false
+ property var model
+ property var effectNode
+ property var effectNodeWrapper
+
+ // Draggging
+ property Item draggedSec: null
+ property var secsY: []
+ property int moveFromIdx: 0
+ property int moveToIdx: 0
+
+ function invalidate() {
+ root.effectNode = null
+ root.model = null
+
+ var effect = modelNodeBackend.allChildrenOfType("DesignEffect")
+ root.effectNode = effect
+ root.effectNodeWrapper = modelNodeBackend.registerSubSelectionWrapper(effect)
+ root.hasDesignerEffect = effect.length === 1
+
+ if (!root.hasDesignerEffect)
+ return
+
+ root.model = modelNodeBackend.allChildren(effect[0]) //ids for all effects
+ }
+
+ leftPadding: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr('Effects <a style="color:%1;">[beta]</a>').arg(StudioTheme.Values.themeInteraction)
+ visible: backendValues.layer_effect.isAvailable
+
+ property Connections connection: Connections {
+ target: modelNodeBackend
+
+ function onSelectionChanged() { root.invalidate() }
+ function onSelectionToBeChanged() { root.model = [] }
+ }
+
+ SectionLayout {
+ PropertyLabel {}
+
+ SecondColumnLayout {
+ Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
+
+ AbstractButton {
+ id: effectButton
+ implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ width: StudioTheme.Values.singleControlColumnWidth
+ buttonIcon: root.hasDesignerEffect ? qsTr("Remove Effects") : qsTr("Add Effects")
+ iconFont: StudioTheme.Constants.font
+ tooltip: qsTr("Adds a note with a title to explain the component.")
+ onClicked: {
+ if (root.hasDesignerEffect) {
+ root.effectNodeWrapper.deleteModelNode()
+ } else {
+ modelNodeBackend.createModelNode(-1, "data", "DesignEffect", "QtQuick.Studio.DesignEffects")
+ var effectNode = modelNodeBackend.allChildrenOfType("DesignEffect")
+ modelNodeBackend.createModelNode(effectNode, "effects", "DesignDropShadow")
+ }
+ root.invalidate()
+ }
+ }
+ }
+
+ PropertyLabel {
+ text: qsTr("Visible")
+ visible: root.hasDesignerEffect
+ }
+
+ SecondColumnLayout {
+ visible: root.hasDesignerEffect
+
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: root.effectNodeWrapper.properties.visible
+ }
+
+ ExpandingSpacer {}
+ }
+ }
+
+ Item {
+ visible: root.hasDesignerEffect
+ width: 1
+ height: StudioTheme.Values.sectionHeadSpacerHeight
+ }
+
+ function handleDragMove() {
+ root.dragTimer.stop()
+ if (root.secsY.length === 0) {
+ for (let i = 0; i < repeater.count; ++i)
+ root.secsY[i] = repeater.itemAt(i).y
+ }
+
+ let scrollView = Controller.mainScrollView
+
+ let oldContentY = scrollView.contentY
+ if (root.draggedSec.y < scrollView.dragScrollMargin + scrollView.contentY
+ && scrollView.contentY > 0) {
+ scrollView.contentY -= scrollView.dragScrollMargin / 2
+ } else if (root.draggedSec.y > scrollView.contentY + scrollView.height - scrollView.dragScrollMargin
+ && scrollView.contentY < scrollView.contentHeight - scrollView.height) {
+ scrollView.contentY += scrollView.dragScrollMargin / 2
+ if (scrollView.contentY > scrollView.contentHeight - scrollView.height)
+ scrollView.contentY = scrollView.contentHeight - scrollView.height
+ }
+
+ if (scrollView.contentY < 0)
+ scrollView.contentY = 0
+
+ if (oldContentY !== scrollView.contentY) {
+ // Changing dragged section position in drag handler doesn't seem to stick
+ // when triggered by mouse move, so do it again async
+ root.dragTimer.targetY = root.draggedSec.y - oldContentY + scrollView.contentY
+ root.dragTimer.restart()
+ root.dragConnection.enabled = false
+ root.draggedSec.y = root.dragTimer.targetY
+ root.dragConnection.enabled = true
+ }
+
+ root.moveToIdx = root.moveFromIdx
+ for (let i = 0; i < repeater.count; ++i) {
+ let currItem = repeater.itemAt(i)
+ if (i > root.moveFromIdx) {
+ if (root.draggedSec.y > currItem.y) {
+ currItem.y = root.secsY[i] - root.draggedSec.height - nodesCol.spacing
+ root.moveToIdx = i
+ } else {
+ currItem.y = root.secsY[i]
+ }
+ } else if (i < root.moveFromIdx) {
+ if (root.draggedSec.y < currItem.y) {
+ currItem.y = root.secsY[i] + root.draggedSec.height + nodesCol.spacing
+ root.moveToIdx = Math.min(root.moveToIdx, i)
+ } else {
+ currItem.y = root.secsY[i]
+ }
+ }
+ }
+ }
+
+ property Connections dragConnection: Connections {
+ target: root.draggedSec
+
+ function onYChanged() { root.handleDragMove() }
+ }
+
+ property Timer dragTimer: Timer {
+ running: false
+ interval: 16
+ repeat: false
+
+ property real targetY: -1
+
+ onTriggered: {
+ // Ensure we get position change triggers even if user holds mouse still to
+ // make scrolling smooth
+ root.draggedSec.y = targetY
+ root.handleDragMove()
+ }
+ }
+
+ Column {
+ id: nodesCol
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: 1
+
+ Section {
+ sectionHeight: 37
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Layer Blur")
+ labelCapitalization: Font.MixedCase
+ visible: root.hasDesignerEffect
+ category: "DesignEffects"
+ expanded: false
+
+ SectionLayout {
+
+ PropertyLabel { text: qsTr("Visible") }
+
+ SecondColumnLayout {
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: root.effectNodeWrapper.properties.layerBlurVisible
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel { text: qsTr("Blur") }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: root.effectNodeWrapper.properties.layerBlurRadius
+ minimumValue: 0
+ maximumValue: 250
+ }
+
+ ExpandingSpacer {}
+ }
+ }
+ }
+
+ Section {
+ sectionHeight: 37
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Background Blur")
+ labelCapitalization: Font.MixedCase
+ visible: root.hasDesignerEffect
+ category: "DesignEffects"
+ expanded: false
+
+ SectionLayout {
+
+ PropertyLabel { text: qsTr("Visible") }
+
+ SecondColumnLayout {
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: root.effectNodeWrapper.properties.backgroundBlurVisible
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel { text: qsTr("Blur") }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: root.effectNodeWrapper.properties.backgroundBlurRadius
+ minimumValue: 0
+ maximumValue: 250
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel { text: qsTr("Background") }
+
+ SecondColumnLayout {
+ ItemFilterComboBox {
+ implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ width: implicitWidth
+ typeFilter: "QtQuick.Item"
+ backendValue: root.effectNodeWrapper.properties.backgroundLayer
+ }
+
+ ExpandingSpacer {}
+ }
+ }
+ }
+
+ Repeater {
+ id: repeater
+ model: root.model
+
+ Section {
+ id: delegate
+
+ property QtObject wrapper: modelNodeBackend.registerSubSelectionWrapper(modelData)
+ property bool wasExpanded: false
+
+ Behavior on y {
+ id: dragAnimation
+
+ PropertyAnimation {
+ duration: 300
+ easing.type: Easing.InOutQuad
+ }
+ }
+
+ onStartDrag: function(section) {
+ root.draggedSec = section
+ root.moveFromIdx = index
+ // We only need to animate non-dragged sections
+ dragAnimation.enabled = false
+ delegate.wasExpanded = delegate.expanded
+ delegate.expanded = false
+ delegate.highlightBorder = true
+ root.secsY = []
+ }
+
+ onStopDrag: {
+ if (root.secsY.length !== 0) {
+ if (root.moveFromIdx === root.moveToIdx)
+ root.draggedSec.y = root.secsY[root.moveFromIdx]
+ else
+ modelNodeBackend.moveNode(root.effectNode, "effects", root.moveFromIdx, root.moveToIdx)
+ }
+
+ delegate.highlightBorder = false
+ root.draggedSec = null
+ delegate.expanded = delegate.wasExpanded
+ dragAnimation.enabled = true
+
+ Qt.callLater(root.invalidate)
+ }
+
+ sectionHeight: 37
+ anchors.left: parent.left
+ anchors.right: parent.right
+ category: "DesignEffects"
+ fillBackground: true
+ expanded: false
+
+ draggable: true
+ showCloseButton: true
+
+ content: StudioControls.ComboBox {
+ id: shadowComboBox
+ actionIndicatorVisible: false
+ width: 200
+ textRole: "text"
+ valueRole: "value"
+ model: [
+ { value: "DesignDropShadow", text: qsTr("Drop Shadow") },
+ { value: "DesignInnerShadow", text: qsTr("Inner Shadow") }
+ ]
+ anchors.verticalCenter: parent.verticalCenter
+
+ // When an item is selected, update the backend.
+ onActivated: {
+ delegate.wrapper.properties.showBehind.resetValue()
+ modelNodeBackend.changeType(modelData, shadowComboBox.currentValue)
+ }
+ // Set the initial currentIndex to the value stored in the backend.
+ Component.onCompleted: {
+ shadowComboBox.currentIndex = shadowComboBox.indexOfValue(modelNodeBackend.simplifiedTypeName(modelData))
+ }
+ }
+
+ onCloseButtonClicked: {
+ delegate.wrapper.deleteModelNode()
+ Qt.callLater(root.invalidate)
+ }
+
+ SectionLayout {
+ id: controlContainer
+ property bool isDropShadow: shadowComboBox.currentValue === "DesignDropShadow"
+
+ PropertyLabel { text: qsTr("Visible") }
+
+ SecondColumnLayout {
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.visible
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel { text: qsTr("Blur") }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.blur
+ minimumValue: 0
+ maximumValue: 250
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel {
+ text: qsTr("Spread")
+ enabled: modelNodeBackend.isInstanceOf("Rectangle")
+ }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.spread
+ enabled: modelNodeBackend.isInstanceOf("Rectangle")
+ minimumValue: -2048
+ maximumValue: 2048
+ }
+
+ ExpandingSpacer {}
+ }
+
+ PropertyLabel {
+ text: qsTr("Color")
+ tooltip: qsTr("Sets the color.")
+ }
+
+ ColorEditor {
+ backendValue: delegate.wrapper.properties.color
+ supportGradient: false
+ }
+
+ PropertyLabel { text: qsTr("Offset") }
+
+ SecondColumnLayout {
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.offsetX
+ minimumValue: -0xffff
+ maximumValue: 0xffff
+ }
+
+ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
+
+ ControlLabel {
+ text: "X"
+ tooltip: qsTr("X-coordinate")
+ }
+
+ Spacer { implicitWidth: StudioTheme.Values.controlGap }
+
+ SpinBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.offsetY
+ minimumValue: -0xffff
+ maximumValue: 0xffff
+ }
+
+ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
+
+ ControlLabel {
+ text: "Y"
+ tooltip: qsTr("Y-coordinate")
+ }
+
+ ExpandingSpacer {}
+ }
+
+
+ PropertyLabel {
+ visible: controlContainer.isDropShadow
+ text: qsTr("Show behind")
+ }
+
+ SecondColumnLayout {
+ visible: controlContainer.isDropShadow
+
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: delegate.wrapper.properties.showBehind
+ }
+
+ ExpandingSpacer {}
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ visible: root.hasDesignerEffect
+ width: 1
+ height: StudioTheme.Values.sectionHeadSpacerHeight
+ }
+
+ SectionLayout {
+ visible: root.hasDesignerEffect
+
+ PropertyLabel {}
+
+ SecondColumnLayout {
+ Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
+
+ AbstractButton {
+ id: addShadowEffectButton
+ implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ width: StudioTheme.Values.singleControlColumnWidth
+ buttonIcon: qsTr("Add Shadow Effect")
+ iconFont: StudioTheme.Constants.font
+ tooltip: qsTr("Adds a Design Drop Shadow.")
+ onClicked: {
+ modelNodeBackend.createModelNode(root.effectNode,
+ "effects",
+ "DesignDropShadow")
+ root.invalidate()
+ }
+ }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ItemPane.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ItemPane.qml
index 60bd415a6af..aeef8a9598e 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ItemPane.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ItemPane.qml
@@ -133,6 +133,10 @@ PropertyEditorPane {
visible: specificsOne.source.toString() !== ""
}
+ EffectsSection {
+ expanded: false
+ }
+
AdvancedSection {
expanded: false
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/ColumnLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/ColumnLayoutSpecifics.qml
index 7cdb040956c..aeaeacbd4ec 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/ColumnLayoutSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/ColumnLayoutSpecifics.qml
@@ -12,7 +12,10 @@ Section {
caption: qsTr("Column Layout")
SectionLayout {
- PropertyLabel { text: qsTr("Column spacing") }
+ PropertyLabel {
+ text: qsTr("Column spacing")
+ tooltip: qsTr("Sets the space between the items in pixels in the <b>Column Layout</b>.")
+ }
SecondColumnLayout {
SpinBox {
@@ -30,6 +33,7 @@ Section {
PropertyLabel {
text: qsTr("Layout direction")
blockedByTemplate: !backendValues.layoutDirection.isAvailable
+ tooltip: qsTr("Sets the direction of the item flow in the <b>Column Layout</b>.")
}
SecondColumnLayout {
@@ -44,5 +48,22 @@ Section {
ExpandingSpacer {}
}
+
+ PropertyLabel {
+ text: qsTr("Uniform cell size")
+ tooltip: qsTr("Toggles all cells to have a uniform size.")
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ SecondColumnLayout {
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: backendValues.uniformCellSizes
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ ExpandingSpacer {}
+ }
}
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml
index 37437693534..e6606ffe00f 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml
@@ -12,7 +12,10 @@ Section {
caption: qsTr("Grid Layout")
SectionLayout {
- PropertyLabel { text: qsTr("Columns & Rows") }
+ PropertyLabel {
+ text: qsTr("Columns & Rows")
+ tooltip: qsTr("Sets the number of columns and rows in the <b>Grid Layout</b>.")
+ }
SecondColumnLayout {
SpinBox {
@@ -49,7 +52,10 @@ Section {
ExpandingSpacer {}
}
- PropertyLabel { text: qsTr("Spacing") }
+ PropertyLabel {
+ text: qsTr("Spacing")
+ tooltip: qsTr("Sets the space between the items in pixels in the rows and columns in the <b>Grid Layout</b>.")
+ }
SecondColumnLayout {
SpinBox {
@@ -86,7 +92,10 @@ Section {
ExpandingSpacer {}
}
- PropertyLabel { text: qsTr("Flow") }
+ PropertyLabel {
+ text: qsTr("Flow")
+ tooltip: qsTr("Set the direction of dynamic items to flow in rows or columns in the <b>Grid Layout</b>.")
+ }
SecondColumnLayout {
ComboBox {
@@ -100,7 +109,11 @@ Section {
ExpandingSpacer {}
}
- PropertyLabel { text: qsTr("Layout direction") }
+ PropertyLabel {
+ text: qsTr("Layout direction")
+ tooltip: qsTr("Sets the direction of the dynamic items left to right or right to left in the <b>Grid Layout</b>.")
+
+ }
SecondColumnLayout {
ComboBox {
@@ -113,5 +126,34 @@ Section {
ExpandingSpacer {}
}
+
+ PropertyLabel {
+ text: qsTr("Uniform cell sizes")
+ tooltip: qsTr("Toggles all cells to have a uniform height or width.")
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ SecondColumnLayout {
+ CheckBox {
+ text: qsTr("Heights")
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: backendValues.uniformCellHeights
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
+
+ CheckBox {
+ text: qsTr("Widths")
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: backendValues.uniformCellWidths
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ ExpandingSpacer {}
+ }
}
}
+
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml
index c1abe023a49..726b3783fbc 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml
@@ -12,7 +12,10 @@ Section {
caption: qsTr("Row Layout")
SectionLayout {
- PropertyLabel { text: qsTr("Row spacing") }
+ PropertyLabel {
+ text: qsTr("Row spacing")
+ tooltip: qsTr("Sets the space between the items in pixels in the <b>Row Layout</b>.")
+ }
SecondColumnLayout {
SpinBox {
@@ -30,6 +33,7 @@ Section {
PropertyLabel {
text: qsTr("Layout direction")
blockedByTemplate: !backendValues.layoutDirection.isAvailable
+ tooltip: qsTr("Sets the direction of the item flow in the <b>Row Layout</b>.")
}
SecondColumnLayout {
@@ -44,5 +48,22 @@ Section {
ExpandingSpacer {}
}
+
+ PropertyLabel {
+ text: qsTr("Uniform cell size")
+ tooltip: qsTr("Toggles all cells to have a uniform size.")
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+ SecondColumnLayout {
+ CheckBox {
+ implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ + StudioTheme.Values.actionIndicatorWidth
+ backendValue: backendValues.uniformCellSizes
+ visible: majorQtQuickVersion === 6 && minorQtQuickVersion >= 6
+ }
+
+ ExpandingSpacer {}
+ }
}
}
+
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml
index 110a8cbf1a9..dc865bf1280 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml
@@ -12,7 +12,10 @@ Section {
caption: qsTr("Stack Layout")
SectionLayout {
- PropertyLabel { text: qsTr("Current index") }
+ PropertyLabel {
+ text: qsTr("Current index")
+ tooltip: qsTr("Sets the index of the child item currently visible in the <b>Stack Layout</b>.")
+ }
SecondColumnLayout {
SpinBox {
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/CheckBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/CheckBox.qml
index 95788a9ec6a..7f1e6f5d461 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/CheckBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/CheckBox.qml
@@ -22,17 +22,25 @@ StudioControls.CheckBox {
labelColor: colorLogic.textColor
+ property bool __block: false
+
ColorLogic {
id: colorLogic
backendValue: checkBox.backendValue
onValueFromBackendChanged: {
+ checkBox.__block = true
if (colorLogic.valueFromBackend !== undefined
&& checkBox.checked !== colorLogic.valueFromBackend)
checkBox.checked = colorLogic.valueFromBackend
+ checkBox.__block = false
}
+
}
onCheckedChanged: {
+ if (checkBox.__block)
+ return
+
if (backendValue.value !== checkBox.checked)
backendValue.value = checkBox.checked
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml
index 115c41e103d..11ce0e1e753 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml
@@ -13,8 +13,10 @@ Item {
property alias minimumValue: spinBox.realFrom
property alias maximumValue: spinBox.realTo
property alias stepSize: spinBox.realStepSize
+ property alias spinBoxIndicatorVisible: spinBox.spinBoxIndicatorVisible
property alias sliderIndicatorVisible: spinBox.sliderIndicatorVisible
property alias hover: spinBox.hover
+ property alias inputHAlignment: spinBox.inputHAlignment
property alias pixelsPerUnit: spinBox.pixelsPerUnit
@@ -51,5 +53,6 @@ Item {
decimals: 2
onRealValueModified: wrapper.valueModified()
+ onCompressedRealValueModified: wrapper.valueModified()
}
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DynamicPropertiesSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DynamicPropertiesSection.qml
index 39176ca82a9..88a0debae80 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DynamicPropertiesSection.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DynamicPropertiesSection.qml
@@ -291,53 +291,64 @@ Section {
property int vecSize: 0
property var proxyValues: []
property var spinBoxes: [boxX, boxY, boxZ, boxW]
+ property bool block: false
signal remove
- onVecSizeChanged: updateProxyValues()
+ onVecSizeChanged: layoutVector.updateProxyValues()
- spacing: StudioTheme.Values.sectionRowSpacing / 2
+ spacing: StudioTheme.Values.sectionRowSpacing
function isValidValue(v) {
return !(v === undefined || isNaN(v))
}
- function updateExpression() {
+ function updateExpressionFromExpression() {
+ if (layoutVector.block)
+ return
+
+ layoutVector.backendValue.expression = layoutVector.proxyValues[0].expression
+ // Only the first proxy value has an expression editor enabled
+ }
+
+ function updateExpressionFromValue() {
+ if (layoutVector.block)
+ return
+
for (let i = 0; i < vecSize; ++i) {
- if (!isValidValue(proxyValues[i].value))
+ if (!layoutVector.isValidValue(layoutVector.proxyValues[i].value))
return
}
- let expStr = "Qt.vector" + vecSize + "d("+proxyValues[0].value
- for (let j=1; j < vecSize; ++j)
- expStr += ", " + proxyValues[j].value
+ let expStr = "Qt.vector" + layoutVector.vecSize + "d(" + layoutVector.proxyValues[0].value
+ for (let j=1; j < layoutVector.vecSize; ++j)
+ expStr += ", " + layoutVector.proxyValues[j].value
expStr += ")"
layoutVector.backendValue.expression = expStr
}
function updateProxyValues() {
- if (!backendValue)
+ if (!layoutVector.backendValue)
return;
- const startIndex = backendValue.expression.indexOf('(')
- const endIndex = backendValue.expression.indexOf(')')
- if (startIndex === -1 || endIndex === -1 || endIndex < startIndex)
- return
- const numberStr = backendValue.expression.slice(startIndex + 1, endIndex)
- const numbers = numberStr.split(",")
- if (!Array.isArray(numbers) || numbers.length !== vecSize)
- return
+ let vals = layoutVector.backendValue.getExpressionAsVector()
- let vals = []
- for (let i = 0; i < vecSize; ++i) {
- vals[i] = parseFloat(numbers[i])
- if (!isValidValue(vals[i]))
- return
+ layoutVector.block = true
+
+ if (layoutVector.vecSize === vals.length) {
+ for (let j = 0; j < layoutVector.vecSize; ++j) {
+ layoutVector.proxyValues[j].setForceBound(false)
+ layoutVector.proxyValues[j].value = vals[j]
+ }
+ } else {
+ for (let j = 0; j < layoutVector.vecSize; ++j) {
+ layoutVector.proxyValues[j].setForceBound(true) // Required since the backendValue is just proxied
+ layoutVector.proxyValues[j].expression = layoutVector.backendValue.expression
+ }
}
- for (let j = 0; j < vecSize; ++j)
- proxyValues[j].value = vals[j]
+ layoutVector.block = false
}
SecondColumnLayout {
@@ -357,15 +368,18 @@ Section {
tooltip: "X"
}
- Spacer { implicitWidth: StudioTheme.Values.controlGap }
+ Spacer {
+ implicitWidth: StudioTheme.Values.controlGap
+ + StudioTheme.Values.actionIndicatorWidth
+ }
SpinBox {
id: boxY
+ actionIndicatorVisible: false
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
@@ -386,14 +400,16 @@ Section {
}
SecondColumnLayout {
- visible: vecSize > 2
+ visible: layoutVector.vecSize > 2
+ Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
+
SpinBox {
id: boxZ
+ actionIndicatorVisible: false
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
@@ -401,19 +417,22 @@ Section {
ControlLabel {
text: "Z"
tooltip: "Z"
- visible: vecSize > 2
+ visible: layoutVector.vecSize > 2
}
- Spacer { implicitWidth: StudioTheme.Values.controlGap }
+ Spacer {
+ implicitWidth: StudioTheme.Values.controlGap
+ + StudioTheme.Values.actionIndicatorWidth
+ }
SpinBox {
id: boxW
+ actionIndicatorVisible: false
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- visible: vecSize > 3
+ visible: layoutVector.vecSize > 3
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
@@ -421,7 +440,7 @@ Section {
ControlLabel {
text: "W"
tooltip: "W"
- visible: vecSize > 3
+ visible: layoutVector.vecSize > 3
}
Spacer { implicitWidth: StudioTheme.Values.controlGap }
@@ -430,7 +449,7 @@ Section {
height: 10
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
- visible: vecSize === 2 // Placeholder for last spinbox
+ visible: layoutVector.vecSize === 2 // Placeholder for last spinbox
}
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
@@ -486,9 +505,12 @@ Section {
model: root.propertiesModel
row: index
}
+
PropertyLabel {
text: propertyName
tooltip: propertyType
+ Layout.alignment: Qt.AlignTop
+ Layout.topMargin: 6
}
Loader {
@@ -540,7 +562,8 @@ Section {
for (let i = 0; i < vecSize; ++i) {
var newProxyValue = propertyRow.createProxyBackendValue()
loader.item.proxyValues.push(newProxyValue)
- newProxyValue.valueChangedQml.connect(loader.item.updateExpression)
+ newProxyValue.valueChangedQml.connect(loader.item.updateExpressionFromValue)
+ newProxyValue.expressionChangedQml.connect(loader.item.updateExpressionFromExpression)
loader.item.spinBoxes[i].backendValue = newProxyValue
}
propertyRow.backendValue.expressionChanged.connect(loader.item.updateProxyValues)
@@ -685,7 +708,7 @@ Section {
StudioControls.ComboBox {
id: comboBox
actionIndicator.visible: false
- model: ["int", "real", "color", "string", "bool", "url", "alias",
+ model: ["int", "real", "color", "string", "bool", "url", "alias", "signal",
"TextureInput", "vector2d", "vector3d", "vector4d"]
width: cePopup.itemWidth
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml
new file mode 100644
index 00000000000..edf17374e22
--- /dev/null
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml
@@ -0,0 +1,145 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import QtQuick
+import StudioControls as StudioControls
+import HelperWidgets as HelperWidgets
+import StudioTheme as StudioTheme
+
+/*
+ A ComboBox of flags, it expects a list model as below
+
+itemsModel: ListModel {
+ ListElement {
+ name: "..."
+ flag: "..."
+ }
+ ListElement {
+ name: "..."
+ flag: "..."
+ }
+ ...
+*/
+StudioControls.CustomComboBox {
+ id: root
+
+ required property var itemsModel
+
+ property variant backendValue
+
+ property bool showExtendedFunctionButton: true
+
+ property string scope: "Qt" // flag prefix scope
+ property string zeroFlag
+
+ Connections {
+ id: backendValueConnection
+
+ target: backendValue
+
+ function onValueChangedQml() {
+ let selectedItem = ""
+
+ let flags = root.backendValue.expression.split(/\s*\|\s*/).filter(Boolean)
+
+ for (let i = 0; i < root.itemsModel.count; ++i) {
+ let flag = root.scope + "." + root.itemsModel.get(i).flag
+ let flagActive = flags.indexOf(flag) !== -1
+ root.popupItem.itemAt(i).checked = flagActive
+
+ if (flagActive)
+ selectedItem = root.itemsModel.get(i).name
+ }
+
+ // update ComboBox text
+ let numSelected = flags.length
+ if (flags.length > 0 && flags[0] === root.scope + "." + root.zeroFlag)
+ --numSelected
+
+ root.model = numSelected === 0 ? [qsTr("empty")]
+ : numSelected === 1 ? root.model = [selectedItem]
+ : [qsTr("%1 items selected").arg(numSelected)]
+ }
+ }
+
+ Component.onCompleted: backendValueConnection.onValueChangedQml()
+
+ model: [qsTr("empty")]
+
+ popupComponent: Column {
+ padding: 5
+ spacing: 2
+
+ function itemAt(idx) {
+ return repeater.itemAt(idx)
+ }
+
+ Row {
+ spacing: 5
+
+ HelperWidgets.Button {
+ text: qsTr("Select All")
+ width: 80
+
+ onClicked: {
+ let allFlags = root.scope + "." + root.itemsModel.get(0).flag
+ for (let i = 1; i < root.itemsModel.count; ++i)
+ allFlags += " | " + root.scope + "." + root.itemsModel.get(i).flag
+
+ root.backendValue.expression = allFlags
+ }
+ }
+ HelperWidgets.Button {
+ text: qsTr("Select None")
+ width: 80
+
+ onClicked: {
+ if (root.zeroFlag)
+ root.backendValue.expression = root.scope + "." + root.zeroFlag
+ else
+ root.backendValue.resetValue()
+ }
+ }
+ }
+
+ Repeater {
+ id: repeater
+
+ model: root.itemsModel
+ delegate: StudioControls.CheckBox {
+ text: name
+ actionIndicatorVisible: false
+
+ onToggled: {
+ let flags = root.backendValue.expression.split(/\s*\|\s*/).filter(Boolean)
+ let scopedFlag = root.scope + "." + flag
+ let idx = flags.indexOf(scopedFlag)
+
+ if (root.popupItem.itemAt(index).checked) {
+ if (idx === -1)
+ flags.push(scopedFlag)
+ } else {
+ if (idx !== -1)
+ flags.splice(idx, 1)
+ }
+
+ root.backendValue.expression = flags.join(" | ")
+ }
+ }
+ }
+ }
+
+ ExtendedFunctionLogic {
+ id: extFuncLogic
+ backendValue: root.backendValue
+
+ onMenuVisibleChanged: root.popup.visible = false
+ }
+
+ actionIndicator.icon.color: extFuncLogic.color
+ actionIndicator.icon.text: extFuncLogic.glyph
+ actionIndicator.onClicked: extFuncLogic.show()
+ actionIndicator.forceVisible: extFuncLogic.menuVisible
+
+ actionIndicator.visible: root.showExtendedFunctionButton
+}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml
index 008320cb92a..4534d3fe7da 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml
@@ -8,9 +8,9 @@ import StudioTheme as StudioTheme
Rectangle {
id: root
- signal clicked()
- signal pressed()
- signal released()
+ signal clicked(mouse: var)
+ signal pressed(mouse: var)
+ signal released(mouse: var)
property alias icon: icon.text
property alias tooltip: toolTip.text
@@ -30,18 +30,17 @@ Rectangle {
property color hoverColor: root.transparentBg ? "transparent" : StudioTheme.Values.themeControlBackgroundHover
property color pressColor: root.transparentBg ? "transparent" : StudioTheme.Values.themeControlBackgroundInteraction
- width: buttonSize
- height: buttonSize
+ width: root.buttonSize
+ height: root.buttonSize
- color: !enabled ? normalColor
- : mouseArea.pressed ? pressColor
- : mouseArea.containsMouse ? hoverColor
- : normalColor
+ color: !root.enabled ? root.normalColor
+ : mouseArea.pressed ? root.pressColor
+ : mouseArea.containsMouse ? root.hoverColor
+ : root.normalColor
Text {
id: icon
anchors.centerIn: root
-
color: root.enabled ? StudioTheme.Values.themeTextColor : StudioTheme.Values.themeTextColorDisabled
font.family: StudioTheme.Constants.iconFont.family
font.pixelSize: StudioTheme.Values.baseIconFontSize
@@ -49,30 +48,29 @@ Rectangle {
MouseArea {
id: mouseArea
-
anchors.fill: parent
hoverEnabled: root.visible
- onClicked: {
+ onClicked: function(mouse) {
// We need to keep mouse area enabled even when button is disabled to make tooltip work
if (root.enabled)
- root.clicked()
+ root.clicked(mouse)
}
- onPressed: {
+ onPressed: function(mouse) {
if (root.enabled)
- root.pressed()
+ root.pressed(mouse)
}
- onReleased: {
+ onReleased: function(mouse) {
if (root.enabled)
- root.released()
+ root.released(mouse)
}
}
ToolTip {
id: toolTip
- visible: mouseArea.containsMouse && text !== ""
+ visible: mouseArea.containsMouse && toolTip.text !== ""
delay: 1000
}
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PropertyEditorPane.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PropertyEditorPane.qml
index f35a21f4533..7046ca48e14 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PropertyEditorPane.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PropertyEditorPane.qml
@@ -17,6 +17,7 @@ Rectangle {
Component.onCompleted: Controller.mainScrollView = mainScrollView
default property alias content: mainColumn.children
+ property alias scrollView: mainScrollView
// Called from C++ to close context menu on focus out
function closeContextMenu() {
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml
index f078f3dd48d..245b8506a28 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml
@@ -9,11 +9,13 @@ import StudioTheme as StudioTheme
Item {
id: section
- property alias caption: label.text
- property alias labelColor: label.color
+
+ property string caption: "Title"
+ property color labelColor: StudioTheme.Values.themeTextColor
+ property int labelCapitalization: Font.AllUppercase
property alias sectionHeight: header.height
property alias sectionBackgroundColor: header.color
- property alias sectionFontSize: label.font.pixelSize
+ property int sectionFontSize: StudioTheme.Values.myFontSize
property alias showTopSeparator: topSeparator.visible
property alias showArrow: arrow.visible
property alias showLeftBorder: leftBorder.visible
@@ -26,6 +28,17 @@ Item {
property alias fillBackground: sectionBackground.visible
property alias highlightBorder: sectionBorder.visible
+ property Item content: Controls.Label {
+ id: label
+ text: section.caption
+ color: section.labelColor
+ elide: Text.ElideRight
+ font.pixelSize: section.sectionFontSize
+ font.capitalization: section.labelCapitalization
+ anchors.verticalCenter: parent?.verticalCenter
+ textFormat: Text.RichText
+ }
+
property int leftPadding: StudioTheme.Values.sectionLeftPadding
property int rightPadding: 0
property int topPadding: StudioTheme.Values.sectionHeadSpacerHeight
@@ -59,7 +72,7 @@ Item {
Connections {
target: Controller
function onCollapseAll(cat) {
- if (collapsible && cat === section.category) {
+ if (section.collapsible && cat === section.category) {
if (section.expandOnClick)
section.expanded = false
else
@@ -106,6 +119,22 @@ Item {
onExited: section.dropExit()
}
+ StudioControls.Menu {
+ id: contextMenu
+
+ StudioControls.MenuItem {
+ text: qsTr("Expand All")
+ onTriggered: Controller.expandAll(section.category)
+ }
+
+ StudioControls.MenuItem {
+ text: qsTr("Collapse All")
+ onTriggered: Controller.collapseAll(section.category)
+ }
+
+ onOpenedChanged: Controller.contextMenuOpened = contextMenu.opened
+ }
+
Rectangle {
id: header
height: section.hideHeader ? 0 : StudioTheme.Values.sectionHeadHeight
@@ -116,43 +145,6 @@ Item {
: Qt.lighter(StudioTheme.Values.themeSectionHeadBackground, 1.0
+ (0.2 * section.level))
- Item {
- StudioControls.Menu {
- id: contextMenu
-
- StudioControls.MenuItem {
- text: qsTr("Expand All")
- onTriggered: Controller.expandAll(section.category)
- }
-
- StudioControls.MenuItem {
- text: qsTr("Collapse All")
- onTriggered: Controller.collapseAll(section.category)
- }
-
- onOpenedChanged: Controller.contextMenuOpened = contextMenu.opened
- }
- }
-
- Image {
- id: arrow
- width: 8
- height: 4
- source: "image://icons/down-arrow"
- anchors.left: parent.left
- anchors.leftMargin: 4 + (section.level * section.levelShift) + (section.draggable ? 20 : 0) + (section.showEyeButton ? 25 : 0)
- anchors.verticalCenter: parent.verticalCenter
- }
-
- Controls.Label {
- id: label
- anchors.verticalCenter: parent.verticalCenter
- color: StudioTheme.Values.themeTextColor
- x: arrow.x + 18
- font.pixelSize: StudioTheme.Values.myFontSize
- font.capitalization: Font.AllUppercase
- }
-
MouseArea {
id: mouseArea
anchors.fill: parent
@@ -173,58 +165,102 @@ Item {
}
}
- IconButton {
- id: closeButton
+ RowLayout {
+ spacing: 1
+ anchors.fill: parent
- icon: StudioTheme.Constants.closeCross
- buttonSize: 22
- iconScale: containsMouse ? 1.2 : 1
- transparentBg: true
- anchors.right: parent.right
- anchors.rightMargin: 10
- visible: false
+ IconButton {
+ id: dragButton
+ visible: false
+ icon: StudioTheme.Constants.dragmarks
+ buttonSize: 21
+ iconScale: dragButton.enabled && dragButton.containsMouse ? 1.2 : 1
+ transparentBg: true
- onClicked: root.closeButtonClicked()
- }
+ Layout.alignment: Qt.AlignVCenter
+ Layout.preferredWidth: dragButton.width
+ Layout.maximumWidth: dragButton.width
- IconButton {
- id: dragButton
+ drag.target: dragButton.enabled ? section : null
+ drag.axis: Drag.YAxis
- icon: StudioTheme.Constants.dragmarks
- buttonSize: 22
- iconScale: dragButton.enabled && dragButton.containsMouse ? 1.2 : 1
- transparentBg: true
+ onPressed: {
+ section.startDrag(section)
+ section.z = ++section.parent.z // put the dragged section on top
+ }
+
+ onReleased: {
+ section.stopDrag()
+ }
+ }
+
+ IconButton {
+ id: eyeButton
- visible: false
- drag.target: dragButton.enabled ? section : null
- drag.axis: Drag.YAxis
+ visible: false
+ icon: section.eyeEnabled ? StudioTheme.Constants.visible_small
+ : StudioTheme.Constants.invisible_small
+ buttonSize: 21
+ iconScale: eyeButton.containsMouse ? 1.2 : 1
+ transparentBg: true
- onPressed: {
- section.startDrag(section)
+ Layout.alignment: Qt.AlignVCenter
+ Layout.preferredWidth: eyeButton.width
+ Layout.maximumWidth: eyeButton.width
- section.z = ++section.parent.z // put the dragged section on top
+ onClicked: {
+ section.eyeEnabled = !section.eyeEnabled
+ section.eyeButtonClicked()
+ }
}
- onReleased: {
- section.stopDrag()
+ IconButton {
+ id: arrow
+ icon: StudioTheme.Constants.sectionToggle
+ transparentBg: true
+
+ buttonSize: 21
+ iconSize: StudioTheme.Values.smallIconFontSize
+ iconColor: StudioTheme.Values.themeTextColor
+
+ Layout.alignment: Qt.AlignVCenter
+ Layout.preferredWidth: arrow.width
+ Layout.maximumWidth: arrow.width
+
+ onClicked: function(mouse) {
+ if (!section.collapsible && section.expanded)
+ return
+
+ transition.enabled = true
+ if (section.expandOnClick)
+ section.expanded = !section.expanded
+ else
+ section.toggleExpand()
+ }
}
- }
- IconButton {
- id: eyeButton
+ Item {
+ id: headerContent
+ height: header.height
+ Layout.fillWidth: true
+ children: [ section.content ]
+ }
- anchors.left: dragButton.right
+ IconButton {
+ id: closeButton
- icon: section.eyeEnabled ? StudioTheme.Constants.visible_small : StudioTheme.Constants.invisible_small
- buttonSize: 22
- iconScale: eyeButton.containsMouse ? 1.2 : 1
- transparentBg: true
+ visible: false
+ icon: StudioTheme.Constants.closeCross
+ buttonSize: 21
+ iconScale: closeButton.containsMouse ? 1.2 : 1
+ transparentBg: true
- visible: false
+ Layout.alignment: Qt.AlignVCenter
+ Layout.preferredWidth: closeButton.width
+ Layout.maximumWidth: closeButton.width
+ Layout.rightMargin: 10
- onClicked: {
- section.eyeEnabled = !section.eyeEnabled
- root.eyeButtonClicked()
+ onClicked: section.closeButtonClicked()
}
}
}
@@ -266,6 +302,7 @@ Item {
border.width: 1
visible: false
}
+
Item {
id: topSpacer
height: section.addTopPadding && column.height > 0 ? section.topPadding : 0
@@ -285,7 +322,7 @@ Item {
id: leftBorder
visible: false
width: 1
- height: parent.height - bottomPadding
+ height: parent.height - section.bottomPadding
color: header.color
}
@@ -318,5 +355,10 @@ Item {
duration: 120
easing.type: Easing.OutCubic
}
+
+ onRunningChanged: {
+ if (!transition.running)
+ transition.enabled = false
+ }
}
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/SpinBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/SpinBox.qml
index f125c459c51..04cbb78f356 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/SpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/SpinBox.qml
@@ -22,6 +22,9 @@ Item {
property alias realDragRange: spinBox.realDragRange
property alias pixelsPerUnit: spinBox.pixelsPerUnit
+ property alias actionIndicatorEnabled: spinBox.actionIndicator.enabled
+ property alias actionIndicatorVisible: spinBox.actionIndicatorVisible
+
width: 96
implicitHeight: spinBox.height
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml
index 6c0e334dec6..0e42515c76c 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml
@@ -28,6 +28,9 @@ Row {
// Current item
property string absoluteFilePath: ""
+ // If this property is set, this path will be opened instead of the default path
+ property string resourcesPath
+
property alias comboBox: comboBox
property alias spacer: spacer
property alias actionIndicatorVisible: comboBox.actionIndicatorVisible
@@ -425,7 +428,7 @@ Row {
// QtDS very slow. This will happen when selecting different items in the scene.
comboBox.model = {}
- let nameSet = new Set;
+ let nameMap = new Map;
if (root.defaultItems !== undefined) {
for (var i = 0; i < root.defaultItems.length; ++i) {
@@ -437,22 +440,33 @@ Row {
name: root.defaultItems[i],
group: 0
})
- nameSet.add(root.defaultItems[i])
+ nameMap.set(root.defaultItems[i], i)
}
}
const myModel = fileModel.model
for (var j = 0; j < myModel.length; ++j) {
let item = myModel[j]
-
- if (!root.hideDuplicates || !nameSet.has(item.fileName)) {
+ if (root.hideDuplicates && nameMap.has(item.fileName)) {
+ // Prefer hiding generated component files rather than other project files
+ let listIndex = nameMap.get(item.fileName)
+ let absPath = comboBox.listModel.get(listIndex).absoluteFilePath
+ if (absPath.includes("/GeneratedComponents/") || absPath.includes("/asset_imports/")) {
+ comboBox.listModel.set(listIndex, {
+ absoluteFilePath: item.absoluteFilePath,
+ relativeFilePath: item.relativeFilePath,
+ name: item.fileName,
+ group: 1
+ })
+ }
+ } else {
comboBox.listModel.append({
absoluteFilePath: item.absoluteFilePath,
relativeFilePath: item.relativeFilePath,
name: item.fileName,
group: 1
})
- nameSet.add(item.fileName)
+ nameMap.set(item.fileName, comboBox.listModel.count - 1)
}
}
@@ -515,7 +529,7 @@ Row {
icon: StudioTheme.Constants.addFile
iconColor: root.textColor
onClicked: {
- fileModel.openFileDialog()
+ fileModel.openFileDialog(resourcesPath)
if (fileModel.fileName !== "") {
root.backendValue.value = fileModel.fileName
root.absoluteFilePath = fileModel.resolve(root.backendValue.value)
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/qmldir b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/qmldir
index 94c3da27186..ddade5606a1 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/qmldir
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/qmldir
@@ -23,6 +23,7 @@ EditableListView 2.0 EditableListView.qml
ExpandingSpacer 2.0 ExpandingSpacer.qml
ExpressionTextField 2.0 ExpressionTextField.qml
ExtendedFunctionLogic 2.0 ExtendedFunctionLogic.qml
+FlagsComboBox 2.0 FlagsComboBox.qml
FlickableGeometrySection 2.0 FlickableGeometrySection.qml
FlickableSection 2.0 FlickableSection.qml
FontComboBox 2.0 FontComboBox.qml
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/ComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/ComboBox.qml
index 0c68d5195bd..006bb9037ca 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/ComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/ComboBox.qml
@@ -36,6 +36,8 @@ T.ComboBox {
property string preFocusText: ""
+ property string tooltipRole: ""
+
signal compressedActivated(int index, int reason)
enum ActivatedReason { EditingFinished, Other }
@@ -153,6 +155,17 @@ T.ComboBox {
font: control.font
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
+
+ ToolTipArea {
+ anchors.fill: parent
+ text: control.tooltipRole ? (Array.isArray(control.model)
+ ? modelData[control.tooltipRole]
+ : model[control.tooltipRole])
+ : ""
+ enabled: text
+ onClicked: itemDelegate.clicked()
+ onDoubleClicked: itemDelegate.doubleClicked()
+ }
}
highlighted: control.highlightedIndex === index
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/CustomComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/CustomComboBox.qml
new file mode 100644
index 00000000000..88ebfaadb03
--- /dev/null
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/CustomComboBox.qml
@@ -0,0 +1,112 @@
+// Copyright (C) 2024 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 as HelperWidgets
+import StudioControls as StudioControls
+import StudioTheme as StudioTheme
+
+// A ComboBox with a custom popup window
+StudioControls.ComboBox {
+ id: root
+
+ required property Component popupComponent
+
+ readonly property int popupHeight: Math.min(800, popupLoader.height + 2)
+
+ property alias popupItem: popupLoader.item
+
+ // hide default popup
+ popup.width: 0
+ popup.height: 0
+
+ function calculateWindowGeometry() {
+ let gPos = globalPos(itemPane.mapFromItem(root, 0, 0))
+ let scrRect = screenRect()
+
+ window.width = Math.max(root.width - root.actionIndicator.width, popupLoader.width + 2) // 2: scrollView left and right 1px margins
+
+ let newX = gPos.x + root.width - window.width
+ if (newX < scrRect.x)
+ newX = gPos.x
+
+ let newY = Math.min(scrRect.y + scrRect.height,
+ Math.max(scrRect.y, gPos.y + root.height - 1))
+
+ // Check if we have more space above or below the control, and put control on that side,
+ // unless we have enough room for maximum size popup under the control
+ let newHeight
+ let screenY = newY - scrRect.y
+ let availableHeight = scrRect.height - screenY
+ if (availableHeight > screenY || availableHeight > root.popupHeight) {
+ newHeight = Math.min(root.popupHeight, availableHeight)
+ } else {
+ newHeight = Math.min(root.popupHeight, screenY - root.height)
+ newY = newY - newHeight - root.height + 1
+ }
+
+ window.height = newHeight
+ window.x = newX
+ window.y = newY
+ }
+
+ Connections {
+ target: root.popup
+
+ function onAboutToShow() {
+ root.calculateWindowGeometry()
+
+ window.show()
+ window.requestActivate()
+
+ // Geometry can get corrupted by first show after screen change, so recalc it
+ root.calculateWindowGeometry()
+ }
+
+ function onAboutToHide() {
+ window.hide()
+ }
+ }
+
+ Connections {
+ target: itemPane.scrollView
+
+ function onContentYChanged() {
+ window.hide() // TODO: a better solution is to move the window instead of hiding
+ }
+ }
+
+ Window {
+ id: window
+
+ flags: Qt.Tool | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
+
+ onActiveFocusItemChanged: {
+ if (!window.activeFocusItem && !root.hovered && root.popup.opened)
+ root.popup.close()
+ }
+
+ Rectangle {
+ anchors.fill: parent
+ color: StudioTheme.Values.themePanelBackground
+ border.color: StudioTheme.Values.themeInteraction
+ border.width: 1
+ focus: true
+
+ HelperWidgets.ScrollView {
+ anchors.fill: parent
+ anchors.margins: 1
+
+ Loader {
+ id: popupLoader
+ sourceComponent: root.popupComponent
+ }
+ }
+
+ Keys.onPressed: function(event) {
+ if (event.key === Qt.Key_Escape && root.popup.opened)
+ root.popup.close()
+ }
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/PopupDialog.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/PopupDialog.qml
index 4da26cf4940..40c35df27c7 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/PopupDialog.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/PopupDialog.qml
@@ -104,7 +104,7 @@ QtObject {
return root.maximumHeight + (2 * window.margin)
}
visible: false
- flags: Qt.FramelessWindowHint | Qt.Dialog | Qt.WindowStaysOnTopHint
+ flags: Qt.FramelessWindowHint | Qt.Tool | Qt.WindowStaysOnTopHint
color: "transparent"
onClosing: function (close) {
@@ -286,8 +286,10 @@ QtObject {
enabled: root.visible
function onFocusWindowChanged(focusWindow) {
- if (!focusWindow)
+ if (!focusWindow) {
+ root.close()
return
+ }
if (root.keepOpen)
return
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/RealSpinBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/RealSpinBox.qml
index 37612af13f8..9072a2de8ae 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/RealSpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/RealSpinBox.qml
@@ -90,7 +90,12 @@ T.SpinBox {
value: 0
to: 99
- validator: DoubleValidator {
+ function checkAndClearFocus() {
+ if (!spinBoxIndicatorUp.activeFocus && !spinBoxIndicatorDown.activeFocus && !spinBoxInput.activeFocus)
+ control.focus = false
+ }
+
+ DoubleValidator {
id: doubleValidator
locale: control.locale.name
notation: DoubleValidator.StandardNotation
@@ -99,6 +104,15 @@ T.SpinBox {
top: Math.max(control.realFrom, control.realTo)
}
+ IntValidator {
+ id: intValidator
+ locale: control.locale.name
+ bottom: Math.round(Math.min(control.realFrom, control.realTo))
+ top: Math.round(Math.max(control.realFrom, control.realTo))
+ }
+
+ validator: control.decimals === 0 ? intValidator : doubleValidator
+
ActionIndicator {
id: actionIndicator
style: control.style
@@ -148,10 +162,10 @@ T.SpinBox {
id: spinBoxInput
style: control.style
__parentControl: control
- validator: doubleValidator
+ validator: control.validator
function handleEditingFinished() {
- control.focus = false
+ control.checkAndClearFocus()
// Keep the dirty state before calling setValueFromInput(),
// it will be set to false (cleared) internally
@@ -165,7 +179,11 @@ T.SpinBox {
control.compressedRealValueModified()
}
- onEditingFinished: spinBoxInput.handleEditingFinished()
+ onEditingFinished: {
+ spinBoxInput.focus = false
+ spinBoxInput.handleEditingFinished()
+ }
+
onTextEdited: control.dirty = true
}
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SpinBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SpinBox.qml
index da2a7f1d5d7..ffde6e4ad16 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SpinBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SpinBox.qml
@@ -69,6 +69,11 @@ T.SpinBox {
editable: true
validator: control.decimals ? doubleValidator : intValidator
+ function checkAndClearFocus() {
+ if (!spinBoxIndicatorUp.activeFocus && !spinBoxIndicatorDown.activeFocus && !spinBoxInput.activeFocus)
+ control.focus = false
+ }
+
DoubleValidator {
id: doubleValidator
locale: control.locale.name
@@ -132,7 +137,7 @@ T.SpinBox {
__parentControl: control
function handleEditingFinished() {
- control.focus = false
+ control.checkAndClearFocus()
// Keep the dirty state before calling setValueFromInput(),
// it will be set to false (cleared) internally
@@ -146,7 +151,10 @@ T.SpinBox {
control.compressedValueModified()
}
- onEditingFinished: spinBoxInput.handleEditingFinished()
+ onEditingFinished: {
+ spinBoxInput.focus = false
+ spinBoxInput.handleEditingFinished()
+ }
}
background: Rectangle {
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/TopLevelComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/TopLevelComboBox.qml
index 27f8333d246..284e32a7b25 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/TopLevelComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/TopLevelComboBox.qml
@@ -110,7 +110,7 @@ T.ComboBox {
width: control.listView.width
height: control.listView.height + 2 * control.style.borderWidth
visible: false
- flags: Qt.FramelessWindowHint | Qt.Dialog | Qt.NoDropShadowWindowHint | Qt.WindowStaysOnTopHint
+ flags: Qt.FramelessWindowHint | Qt.Tool | Qt.NoDropShadowWindowHint | Qt.WindowStaysOnTopHint
modality: Qt.NonModal
transientParent: control.Window.window
color: "transparent"
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/qmldir b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/qmldir
index 5376aeb0df2..e93f6f59ded 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/qmldir
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/qmldir
@@ -10,6 +10,7 @@ ColorEditorPopup 1.0 impl/ColorEditorPopup.qml
ColorPalette 1.0 impl/ColorPalette.qml
ColorPicker 1.0 impl/ColorPicker.qml
ComboBox 1.0 ComboBox.qml
+CustomComboBox 1.0 CustomComboBox.qml
ComboBoxInput 1.0 ComboBoxInput.qml
ContextMenu 1.0 ContextMenu.qml
Dialog 1.0 Dialog.qml
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml
index 92d0d771a3c..3c74243f684 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml
@@ -75,308 +75,310 @@ QtObject {
readonly property string binding_medium: "\u005C"
readonly property string bounds_small: "\u005D"
readonly property string branch_medium: "\u005E"
- readonly property string camera_small: "\u005F"
- readonly property string centerHorizontal: "\u0060"
- readonly property string centerVertical: "\u0061"
- readonly property string cleanLogs_medium: "\u0062"
- readonly property string clearList_large: "\u0063"
- readonly property string clearList_medium: "\u0064"
- readonly property string closeCross: "\u0065"
- readonly property string closeFile_large: "\u0066"
- readonly property string closeLink: "\u0067"
- readonly property string close_small: "\u0068"
- readonly property string code: "\u0069"
- readonly property string codeEditor_medium: "\u006A"
- readonly property string codeview_medium: "\u006B"
- readonly property string colorPopupClose: "\u006C"
- readonly property string colorSelection_medium: "\u006D"
- readonly property string columnsAndRows: "\u006E"
- readonly property string comboBox_medium: "\u006F"
- readonly property string cone_medium: "\u0070"
- readonly property string cone_small: "\u0071"
- readonly property string connection_small: "\u0072"
- readonly property string connections_medium: "\u0073"
- readonly property string copyLink: "\u0074"
- readonly property string copyStyle: "\u0075"
- readonly property string copy_small: "\u0076"
- readonly property string cornerA: "\u0077"
- readonly property string cornerB: "\u0078"
- readonly property string cornersAll: "\u0079"
- readonly property string createComponent_large: "\u007A"
- readonly property string createComponent_small: "\u007B"
- readonly property string createObject_medium: "\u007C"
- readonly property string create_medium: "\u007D"
- readonly property string create_small: "\u007E"
- readonly property string cube_medium: "\u007F"
- readonly property string cube_small: "\u0080"
- readonly property string curveDesigner: "\u0081"
- readonly property string curveDesigner_medium: "\u0082"
- readonly property string curveEditor: "\u0083"
- readonly property string customMaterialEditor: "\u0084"
- readonly property string cylinder_medium: "\u0085"
- readonly property string cylinder_small: "\u0086"
- readonly property string decisionNode: "\u0087"
- readonly property string deleteColumn: "\u0088"
- readonly property string deleteMaterial: "\u0089"
- readonly property string deleteRow: "\u008A"
- readonly property string deleteTable: "\u008B"
- readonly property string delete_medium: "\u008C"
- readonly property string delete_small: "\u008D"
- readonly property string deletecolumn_medium: "\u008E"
- readonly property string deletepermanently_medium: "\u008F"
- readonly property string deleterow_medium: "\u0090"
- readonly property string designMode_large: "\u0091"
- readonly property string detach: "\u0092"
- readonly property string directionalLight_small: "\u0093"
- readonly property string distributeBottom: "\u0094"
- readonly property string distributeCenterHorizontal: "\u0095"
- readonly property string distributeCenterVertical: "\u0096"
- readonly property string distributeLeft: "\u0097"
- readonly property string distributeOriginBottomRight: "\u0098"
- readonly property string distributeOriginCenter: "\u0099"
- readonly property string distributeOriginNone: "\u009A"
- readonly property string distributeOriginTopLeft: "\u009B"
- readonly property string distributeRight: "\u009D"
- readonly property string distributeSpacingHorizontal: "\u009E"
- readonly property string distributeSpacingVertical: "\u009F"
- readonly property string distributeTop: "\u00A0"
- readonly property string download: "\u00A1"
- readonly property string downloadUnavailable: "\u00A2"
- readonly property string downloadUpdate: "\u00A3"
- readonly property string downloaded: "\u00A4"
- readonly property string dragmarks: "\u00A5"
- readonly property string duplicate_small: "\u00A6"
- readonly property string edit: "\u00A7"
- readonly property string editComponent_large: "\u00A8"
- readonly property string editComponent_small: "\u00A9"
- readonly property string editLightOff_medium: "\u00AA"
- readonly property string editLightOn_medium: "\u00AB"
- readonly property string edit_medium: "\u00AC"
- readonly property string edit_small: "\u00AE"
- readonly property string effects: "\u00AF"
- readonly property string events_small: "\u00B0"
- readonly property string export_medium: "\u00B1"
- readonly property string eyeDropper: "\u00B2"
- readonly property string favorite: "\u00B3"
- readonly property string fitAll_medium: "\u00B4"
- readonly property string fitSelected_small: "\u00B5"
- readonly property string fitSelection_medium: "\u00B6"
- readonly property string fitToView_medium: "\u00B7"
- readonly property string flowAction: "\u00B8"
- readonly property string flowTransition: "\u00B9"
- readonly property string fontStyleBold: "\u00BA"
- readonly property string fontStyleItalic: "\u00BB"
- readonly property string fontStyleStrikethrough: "\u00BC"
- readonly property string fontStyleUnderline: "\u00BD"
- readonly property string forward_medium: "\u00BE"
- readonly property string globalOrient_medium: "\u00BF"
- readonly property string gradient: "\u00C0"
- readonly property string gridView: "\u00C1"
- readonly property string grid_medium: "\u00C2"
- readonly property string group_small: "\u00C3"
- readonly property string help: "\u00C4"
- readonly property string home_large: "\u00C5"
- readonly property string idAliasOff: "\u00C6"
- readonly property string idAliasOn: "\u00C7"
- readonly property string import_medium: "\u00C8"
- readonly property string imported: "\u00C9"
- readonly property string importedModels_small: "\u00CA"
- readonly property string infinity: "\u00CB"
- readonly property string invisible_medium: "\u00CC"
- readonly property string invisible_small: "\u00CD"
- readonly property string jumpToCode_medium: "\u00CE"
- readonly property string jumpToCode_small: "\u00CF"
- readonly property string keyframe: "\u00D0"
- readonly property string languageList_medium: "\u00D1"
- readonly property string layouts_small: "\u00D2"
- readonly property string lights_small: "\u00D3"
- readonly property string linear_medium: "\u00D4"
- readonly property string linkTriangle: "\u00D5"
- readonly property string linked: "\u00D6"
- readonly property string listView: "\u00D7"
- readonly property string listView_medium: "\u00D8"
- readonly property string list_medium: "\u00D9"
- readonly property string localOrient_medium: "\u00DA"
- readonly property string lockOff: "\u00DB"
- readonly property string lockOn: "\u00DC"
- readonly property string loopPlayback_medium: "\u00DD"
- readonly property string materialBrowser_medium: "\u00DE"
- readonly property string materialPreviewEnvironment: "\u00DF"
- readonly property string materialPreviewModel: "\u00E0"
- readonly property string material_medium: "\u00E1"
- readonly property string maxBar_small: "\u00E2"
- readonly property string mergeCells: "\u00E3"
- readonly property string merge_small: "\u00E4"
- readonly property string minus: "\u00E5"
- readonly property string mirror: "\u00E6"
- readonly property string more_medium: "\u00E7"
- readonly property string mouseArea_small: "\u00E8"
- readonly property string moveDown_medium: "\u00E9"
- readonly property string moveInwards_medium: "\u00EA"
- readonly property string moveUp_medium: "\u00EB"
- readonly property string moveUpwards_medium: "\u00EC"
- readonly property string move_medium: "\u00ED"
- readonly property string newMaterial: "\u00EE"
- readonly property string nextFile_large: "\u00EF"
- readonly property string normalBar_small: "\u00F0"
- readonly property string openLink: "\u00F1"
- readonly property string openMaterialBrowser: "\u00F2"
- readonly property string orientation: "\u00F3"
- readonly property string orthCam_medium: "\u00F4"
- readonly property string orthCam_small: "\u00F5"
- readonly property string paddingEdge: "\u00F6"
- readonly property string paddingFrame: "\u00F7"
- readonly property string particleAnimation_medium: "\u00F8"
- readonly property string pasteStyle: "\u00F9"
- readonly property string paste_small: "\u00FA"
- readonly property string pause: "\u00FB"
- readonly property string pause_medium: "\u00FC"
- readonly property string perspectiveCam_medium: "\u00FD"
- readonly property string perspectiveCam_small: "\u00FE"
- readonly property string pin: "\u00FF"
- readonly property string plane_medium: "\u0100"
- readonly property string plane_small: "\u0101"
- readonly property string play: "\u0102"
- readonly property string playFill_medium: "\u0103"
- readonly property string playOutline_medium: "\u0104"
- readonly property string plus: "\u0105"
- readonly property string pointLight_small: "\u0106"
- readonly property string positioners_small: "\u0107"
- readonly property string previewEnv_medium: "\u0108"
- readonly property string previousFile_large: "\u0109"
- readonly property string promote: "\u010A"
- readonly property string properties_medium: "\u010B"
- readonly property string readOnly: "\u010C"
- readonly property string recent_medium: "\u010D"
- readonly property string recordFill_medium: "\u010E"
- readonly property string recordOutline_medium: "\u010F"
- readonly property string redo: "\u0110"
- readonly property string reload_medium: "\u0111"
- readonly property string remove_medium: "\u0112"
- readonly property string remove_small: "\u0113"
- readonly property string rename_small: "\u0114"
- readonly property string replace_small: "\u0115"
- readonly property string resetView_small: "\u0116"
- readonly property string restartParticles_medium: "\u0117"
- readonly property string reverseOrder_medium: "\u0118"
- readonly property string roatate_medium: "\u0119"
- readonly property string rotationFill: "\u011A"
- readonly property string rotationOutline: "\u011B"
- readonly property string runProjFill_large: "\u011C"
- readonly property string runProjOutline_large: "\u011D"
- readonly property string s_anchors: "\u011E"
- readonly property string s_annotations: "\u011F"
- readonly property string s_arrange: "\u0120"
- readonly property string s_boundingBox: "\u0121"
- readonly property string s_component: "\u0122"
- readonly property string s_connections: "\u0123"
- readonly property string s_edit: "\u0124"
- readonly property string s_enterComponent: "\u0125"
- readonly property string s_eventList: "\u0126"
- readonly property string s_group: "\u0127"
- readonly property string s_layouts: "\u0128"
- readonly property string s_merging: "\u0129"
- readonly property string s_mouseArea: "\u012A"
- readonly property string s_positioners: "\u012B"
- readonly property string s_selection: "\u012C"
- readonly property string s_snapping: "\u012D"
- readonly property string s_timeline: "\u012E"
- readonly property string s_visibility: "\u012F"
- readonly property string saveAs_medium: "\u0130"
- readonly property string saveLogs_medium: "\u0131"
- readonly property string save_medium: "\u0132"
- readonly property string scale_medium: "\u0133"
- readonly property string search: "\u0134"
- readonly property string search_small: "\u0135"
- readonly property string sectionToggle: "\u0136"
- readonly property string selectFill_medium: "\u0137"
- readonly property string selectOutline_medium: "\u0138"
- readonly property string selectParent_small: "\u0139"
- readonly property string selection_small: "\u013A"
- readonly property string settings_medium: "\u013B"
- readonly property string signal_small: "\u013C"
- readonly property string snapping_conf_medium: "\u013D"
- readonly property string snapping_medium: "\u013E"
- readonly property string snapping_small: "\u013F"
- readonly property string sortascending_medium: "\u0140"
- readonly property string sortdescending_medium: "\u0141"
- readonly property string sphere_medium: "\u0142"
- readonly property string sphere_small: "\u0143"
- readonly property string splitColumns: "\u0144"
- readonly property string splitRows: "\u0145"
- readonly property string splitScreen_medium: "\u0146"
- readonly property string spotLight_small: "\u0147"
- readonly property string stackedContainer_small: "\u0148"
- readonly property string startNode: "\u0149"
- readonly property string step_medium: "\u014A"
- readonly property string stop_medium: "\u014B"
- readonly property string tableView_medium: "\u014C"
- readonly property string testIcon: "\u014D"
- readonly property string textAlignBottom: "\u014E"
- readonly property string textAlignCenter: "\u014F"
- readonly property string textAlignJustified: "\u0150"
- readonly property string textAlignLeft: "\u0151"
- readonly property string textAlignMiddle: "\u0152"
- readonly property string textAlignRight: "\u0153"
- readonly property string textAlignTop: "\u0154"
- readonly property string textBulletList: "\u0155"
- readonly property string textFullJustification: "\u0156"
- readonly property string textNumberedList: "\u0157"
- readonly property string textures_medium: "\u0158"
- readonly property string tickIcon: "\u0159"
- readonly property string tickMark_small: "\u015A"
- readonly property string timeline_small: "\u015B"
- readonly property string toEndFrame_medium: "\u015C"
- readonly property string toNextFrame_medium: "\u015D"
- readonly property string toPrevFrame_medium: "\u015E"
- readonly property string toStartFrame_medium: "\u015F"
- readonly property string topToolbar_annotations: "\u0160"
- readonly property string topToolbar_closeFile: "\u0161"
- readonly property string topToolbar_designMode: "\u0162"
- readonly property string topToolbar_enterComponent: "\u0163"
- readonly property string topToolbar_home: "\u0164"
- readonly property string topToolbar_makeComponent: "\u0165"
- readonly property string topToolbar_navFile: "\u0166"
- readonly property string topToolbar_runProject: "\u0167"
- readonly property string translationCreateFiles: "\u0168"
- readonly property string translationCreateReport: "\u0169"
- readonly property string translationExport: "\u016A"
- readonly property string translationImport: "\u016B"
- readonly property string translationSelectLanguages: "\u016C"
- readonly property string translationTest: "\u016D"
- readonly property string transparent: "\u016E"
- readonly property string triState: "\u016F"
- readonly property string triangleArcA: "\u0170"
- readonly property string triangleArcB: "\u0171"
- readonly property string triangleCornerA: "\u0172"
- readonly property string triangleCornerB: "\u0173"
- readonly property string unLinked: "\u0174"
- readonly property string undo: "\u0175"
- readonly property string unify_medium: "\u0176"
- readonly property string unpin: "\u0177"
- readonly property string upDownIcon: "\u0178"
- readonly property string upDownSquare2: "\u0179"
- readonly property string updateAvailable_medium: "\u017A"
- readonly property string updateContent_medium: "\u017B"
- readonly property string visibilityOff: "\u017C"
- readonly property string visibilityOn: "\u017D"
- readonly property string visible_medium: "\u017E"
- readonly property string visible_small: "\u017F"
- readonly property string warning_medium: "\u0180"
- readonly property string wildcard: "\u0181"
- readonly property string wizardsAutomotive: "\u0182"
- readonly property string wizardsDesktop: "\u0183"
- readonly property string wizardsGeneric: "\u0184"
- readonly property string wizardsMcuEmpty: "\u0185"
- readonly property string wizardsMcuGraph: "\u0186"
- readonly property string wizardsMobile: "\u0187"
- readonly property string wizardsUnknown: "\u0188"
- readonly property string zoomAll: "\u0189"
- readonly property string zoomIn: "\u018A"
- readonly property string zoomIn_medium: "\u018B"
- readonly property string zoomOut: "\u018C"
- readonly property string zoomOut_medium: "\u018D"
- readonly property string zoomSelection: "\u018E"
+ readonly property string cameraSpeed_medium: "\u005F"
+ readonly property string camera_medium: "\u0060"
+ readonly property string camera_small: "\u0061"
+ readonly property string centerHorizontal: "\u0062"
+ readonly property string centerVertical: "\u0063"
+ readonly property string cleanLogs_medium: "\u0064"
+ readonly property string clearList_large: "\u0065"
+ readonly property string clearList_medium: "\u0066"
+ readonly property string closeCross: "\u0067"
+ readonly property string closeFile_large: "\u0068"
+ readonly property string closeLink: "\u0069"
+ readonly property string close_small: "\u006A"
+ readonly property string code: "\u006B"
+ readonly property string codeEditor_medium: "\u006C"
+ readonly property string codeview_medium: "\u006D"
+ readonly property string colorPopupClose: "\u006E"
+ readonly property string colorSelection_medium: "\u006F"
+ readonly property string columnsAndRows: "\u0070"
+ readonly property string comboBox_medium: "\u0071"
+ readonly property string cone_medium: "\u0072"
+ readonly property string cone_small: "\u0073"
+ readonly property string connection_small: "\u0074"
+ readonly property string connections_medium: "\u0075"
+ readonly property string copyLink: "\u0076"
+ readonly property string copyStyle: "\u0077"
+ readonly property string copy_small: "\u0078"
+ readonly property string cornerA: "\u0079"
+ readonly property string cornerB: "\u007A"
+ readonly property string cornersAll: "\u007B"
+ readonly property string createComponent_large: "\u007C"
+ readonly property string createComponent_small: "\u007D"
+ readonly property string createObject_medium: "\u007E"
+ readonly property string create_medium: "\u007F"
+ readonly property string create_small: "\u0080"
+ readonly property string cube_medium: "\u0081"
+ readonly property string cube_small: "\u0082"
+ readonly property string curveDesigner: "\u0083"
+ readonly property string curveDesigner_medium: "\u0084"
+ readonly property string curveEditor: "\u0085"
+ readonly property string customMaterialEditor: "\u0086"
+ readonly property string cylinder_medium: "\u0087"
+ readonly property string cylinder_small: "\u0088"
+ readonly property string decisionNode: "\u0089"
+ readonly property string deleteColumn: "\u008A"
+ readonly property string deleteMaterial: "\u008B"
+ readonly property string deleteRow: "\u008C"
+ readonly property string deleteTable: "\u008D"
+ readonly property string delete_medium: "\u008E"
+ readonly property string delete_small: "\u008F"
+ readonly property string deletecolumn_medium: "\u0090"
+ readonly property string deletepermanently_medium: "\u0091"
+ readonly property string deleterow_medium: "\u0092"
+ readonly property string designMode_large: "\u0093"
+ readonly property string detach: "\u0094"
+ readonly property string directionalLight_small: "\u0095"
+ readonly property string distributeBottom: "\u0096"
+ readonly property string distributeCenterHorizontal: "\u0097"
+ readonly property string distributeCenterVertical: "\u0098"
+ readonly property string distributeLeft: "\u0099"
+ readonly property string distributeOriginBottomRight: "\u009A"
+ readonly property string distributeOriginCenter: "\u009B"
+ readonly property string distributeOriginNone: "\u009D"
+ readonly property string distributeOriginTopLeft: "\u009E"
+ readonly property string distributeRight: "\u009F"
+ readonly property string distributeSpacingHorizontal: "\u00A0"
+ readonly property string distributeSpacingVertical: "\u00A1"
+ readonly property string distributeTop: "\u00A2"
+ readonly property string download: "\u00A3"
+ readonly property string downloadUnavailable: "\u00A4"
+ readonly property string downloadUpdate: "\u00A5"
+ readonly property string downloaded: "\u00A6"
+ readonly property string dragmarks: "\u00A7"
+ readonly property string duplicate_small: "\u00A8"
+ readonly property string edit: "\u00A9"
+ readonly property string editComponent_large: "\u00AA"
+ readonly property string editComponent_small: "\u00AB"
+ readonly property string editLightOff_medium: "\u00AC"
+ readonly property string editLightOn_medium: "\u00AE"
+ readonly property string edit_medium: "\u00AF"
+ readonly property string edit_small: "\u00B0"
+ readonly property string effects: "\u00B1"
+ readonly property string events_small: "\u00B2"
+ readonly property string export_medium: "\u00B3"
+ readonly property string eyeDropper: "\u00B4"
+ readonly property string favorite: "\u00B5"
+ readonly property string fitAll_medium: "\u00B6"
+ readonly property string fitSelected_small: "\u00B7"
+ readonly property string fitSelection_medium: "\u00B8"
+ readonly property string fitToView_medium: "\u00B9"
+ readonly property string flowAction: "\u00BA"
+ readonly property string flowTransition: "\u00BB"
+ readonly property string fontStyleBold: "\u00BC"
+ readonly property string fontStyleItalic: "\u00BD"
+ readonly property string fontStyleStrikethrough: "\u00BE"
+ readonly property string fontStyleUnderline: "\u00BF"
+ readonly property string forward_medium: "\u00C0"
+ readonly property string globalOrient_medium: "\u00C1"
+ readonly property string gradient: "\u00C2"
+ readonly property string gridView: "\u00C3"
+ readonly property string grid_medium: "\u00C4"
+ readonly property string group_small: "\u00C5"
+ readonly property string help: "\u00C6"
+ readonly property string home_large: "\u00C7"
+ readonly property string idAliasOff: "\u00C8"
+ readonly property string idAliasOn: "\u00C9"
+ readonly property string import_medium: "\u00CA"
+ readonly property string imported: "\u00CB"
+ readonly property string importedModels_small: "\u00CC"
+ readonly property string infinity: "\u00CD"
+ readonly property string invisible_medium: "\u00CE"
+ readonly property string invisible_small: "\u00CF"
+ readonly property string jumpToCode_medium: "\u00D0"
+ readonly property string jumpToCode_small: "\u00D1"
+ readonly property string keyframe: "\u00D2"
+ readonly property string languageList_medium: "\u00D3"
+ readonly property string layouts_small: "\u00D4"
+ readonly property string lights_small: "\u00D5"
+ readonly property string linear_medium: "\u00D6"
+ readonly property string linkTriangle: "\u00D7"
+ readonly property string linked: "\u00D8"
+ readonly property string listView: "\u00D9"
+ readonly property string listView_medium: "\u00DA"
+ readonly property string list_medium: "\u00DB"
+ readonly property string localOrient_medium: "\u00DC"
+ readonly property string lockOff: "\u00DD"
+ readonly property string lockOn: "\u00DE"
+ readonly property string loopPlayback_medium: "\u00DF"
+ readonly property string materialBrowser_medium: "\u00E0"
+ readonly property string materialPreviewEnvironment: "\u00E1"
+ readonly property string materialPreviewModel: "\u00E2"
+ readonly property string material_medium: "\u00E3"
+ readonly property string maxBar_small: "\u00E4"
+ readonly property string mergeCells: "\u00E5"
+ readonly property string merge_small: "\u00E6"
+ readonly property string minus: "\u00E7"
+ readonly property string mirror: "\u00E8"
+ readonly property string more_medium: "\u00E9"
+ readonly property string mouseArea_small: "\u00EA"
+ readonly property string moveDown_medium: "\u00EB"
+ readonly property string moveInwards_medium: "\u00EC"
+ readonly property string moveUp_medium: "\u00ED"
+ readonly property string moveUpwards_medium: "\u00EE"
+ readonly property string move_medium: "\u00EF"
+ readonly property string newMaterial: "\u00F0"
+ readonly property string nextFile_large: "\u00F1"
+ readonly property string normalBar_small: "\u00F2"
+ readonly property string openLink: "\u00F3"
+ readonly property string openMaterialBrowser: "\u00F4"
+ readonly property string orientation: "\u00F5"
+ readonly property string orthCam_medium: "\u00F6"
+ readonly property string orthCam_small: "\u00F7"
+ readonly property string paddingEdge: "\u00F8"
+ readonly property string paddingFrame: "\u00F9"
+ readonly property string particleAnimation_medium: "\u00FA"
+ readonly property string pasteStyle: "\u00FB"
+ readonly property string paste_small: "\u00FC"
+ readonly property string pause: "\u00FD"
+ readonly property string pause_medium: "\u00FE"
+ readonly property string perspectiveCam_medium: "\u00FF"
+ readonly property string perspectiveCam_small: "\u0100"
+ readonly property string pin: "\u0101"
+ readonly property string plane_medium: "\u0102"
+ readonly property string plane_small: "\u0103"
+ readonly property string play: "\u0104"
+ readonly property string playFill_medium: "\u0105"
+ readonly property string playOutline_medium: "\u0106"
+ readonly property string plus: "\u0107"
+ readonly property string pointLight_small: "\u0108"
+ readonly property string positioners_small: "\u0109"
+ readonly property string previewEnv_medium: "\u010A"
+ readonly property string previousFile_large: "\u010B"
+ readonly property string promote: "\u010C"
+ readonly property string properties_medium: "\u010D"
+ readonly property string readOnly: "\u010E"
+ readonly property string recent_medium: "\u010F"
+ readonly property string recordFill_medium: "\u0110"
+ readonly property string recordOutline_medium: "\u0111"
+ readonly property string redo: "\u0112"
+ readonly property string reload_medium: "\u0113"
+ readonly property string remove_medium: "\u0114"
+ readonly property string remove_small: "\u0115"
+ readonly property string rename_small: "\u0116"
+ readonly property string replace_small: "\u0117"
+ readonly property string resetView_small: "\u0118"
+ readonly property string restartParticles_medium: "\u0119"
+ readonly property string reverseOrder_medium: "\u011A"
+ readonly property string roatate_medium: "\u011B"
+ readonly property string rotationFill: "\u011C"
+ readonly property string rotationOutline: "\u011D"
+ readonly property string runProjFill_large: "\u011E"
+ readonly property string runProjOutline_large: "\u011F"
+ readonly property string s_anchors: "\u0120"
+ readonly property string s_annotations: "\u0121"
+ readonly property string s_arrange: "\u0122"
+ readonly property string s_boundingBox: "\u0123"
+ readonly property string s_component: "\u0124"
+ readonly property string s_connections: "\u0125"
+ readonly property string s_edit: "\u0126"
+ readonly property string s_enterComponent: "\u0127"
+ readonly property string s_eventList: "\u0128"
+ readonly property string s_group: "\u0129"
+ readonly property string s_layouts: "\u012A"
+ readonly property string s_merging: "\u012B"
+ readonly property string s_mouseArea: "\u012C"
+ readonly property string s_positioners: "\u012D"
+ readonly property string s_selection: "\u012E"
+ readonly property string s_snapping: "\u012F"
+ readonly property string s_timeline: "\u0130"
+ readonly property string s_visibility: "\u0131"
+ readonly property string saveAs_medium: "\u0132"
+ readonly property string saveLogs_medium: "\u0133"
+ readonly property string save_medium: "\u0134"
+ readonly property string scale_medium: "\u0135"
+ readonly property string search: "\u0136"
+ readonly property string search_small: "\u0137"
+ readonly property string sectionToggle: "\u0138"
+ readonly property string selectFill_medium: "\u0139"
+ readonly property string selectOutline_medium: "\u013A"
+ readonly property string selectParent_small: "\u013B"
+ readonly property string selection_small: "\u013C"
+ readonly property string settings_medium: "\u013D"
+ readonly property string signal_small: "\u013E"
+ readonly property string snapping_conf_medium: "\u013F"
+ readonly property string snapping_medium: "\u0140"
+ readonly property string snapping_small: "\u0141"
+ readonly property string sortascending_medium: "\u0142"
+ readonly property string sortdescending_medium: "\u0143"
+ readonly property string sphere_medium: "\u0144"
+ readonly property string sphere_small: "\u0145"
+ readonly property string splitColumns: "\u0146"
+ readonly property string splitRows: "\u0147"
+ readonly property string splitScreen_medium: "\u0148"
+ readonly property string spotLight_small: "\u0149"
+ readonly property string stackedContainer_small: "\u014A"
+ readonly property string startNode: "\u014B"
+ readonly property string step_medium: "\u014C"
+ readonly property string stop_medium: "\u014D"
+ readonly property string tableView_medium: "\u014E"
+ readonly property string testIcon: "\u014F"
+ readonly property string textAlignBottom: "\u0150"
+ readonly property string textAlignCenter: "\u0151"
+ readonly property string textAlignJustified: "\u0152"
+ readonly property string textAlignLeft: "\u0153"
+ readonly property string textAlignMiddle: "\u0154"
+ readonly property string textAlignRight: "\u0155"
+ readonly property string textAlignTop: "\u0156"
+ readonly property string textBulletList: "\u0157"
+ readonly property string textFullJustification: "\u0158"
+ readonly property string textNumberedList: "\u0159"
+ readonly property string textures_medium: "\u015A"
+ readonly property string tickIcon: "\u015B"
+ readonly property string tickMark_small: "\u015C"
+ readonly property string timeline_small: "\u015D"
+ readonly property string toEndFrame_medium: "\u015E"
+ readonly property string toNextFrame_medium: "\u015F"
+ readonly property string toPrevFrame_medium: "\u0160"
+ readonly property string toStartFrame_medium: "\u0161"
+ readonly property string topToolbar_annotations: "\u0162"
+ readonly property string topToolbar_closeFile: "\u0163"
+ readonly property string topToolbar_designMode: "\u0164"
+ readonly property string topToolbar_enterComponent: "\u0165"
+ readonly property string topToolbar_home: "\u0166"
+ readonly property string topToolbar_makeComponent: "\u0167"
+ readonly property string topToolbar_navFile: "\u0168"
+ readonly property string topToolbar_runProject: "\u0169"
+ readonly property string translationCreateFiles: "\u016A"
+ readonly property string translationCreateReport: "\u016B"
+ readonly property string translationExport: "\u016C"
+ readonly property string translationImport: "\u016D"
+ readonly property string translationSelectLanguages: "\u016E"
+ readonly property string translationTest: "\u016F"
+ readonly property string transparent: "\u0170"
+ readonly property string triState: "\u0171"
+ readonly property string triangleArcA: "\u0172"
+ readonly property string triangleArcB: "\u0173"
+ readonly property string triangleCornerA: "\u0174"
+ readonly property string triangleCornerB: "\u0175"
+ readonly property string unLinked: "\u0176"
+ readonly property string undo: "\u0177"
+ readonly property string unify_medium: "\u0178"
+ readonly property string unpin: "\u0179"
+ readonly property string upDownIcon: "\u017A"
+ readonly property string upDownSquare2: "\u017B"
+ readonly property string updateAvailable_medium: "\u017C"
+ readonly property string updateContent_medium: "\u017D"
+ readonly property string visibilityOff: "\u017E"
+ readonly property string visibilityOn: "\u017F"
+ readonly property string visible_medium: "\u0180"
+ readonly property string visible_small: "\u0181"
+ readonly property string warning_medium: "\u0182"
+ readonly property string wildcard: "\u0183"
+ readonly property string wizardsAutomotive: "\u0184"
+ readonly property string wizardsDesktop: "\u0185"
+ readonly property string wizardsGeneric: "\u0186"
+ readonly property string wizardsMcuEmpty: "\u0187"
+ readonly property string wizardsMcuGraph: "\u0188"
+ readonly property string wizardsMobile: "\u0189"
+ readonly property string wizardsUnknown: "\u018A"
+ readonly property string zoomAll: "\u018B"
+ readonly property string zoomIn: "\u018C"
+ readonly property string zoomIn_medium: "\u018D"
+ readonly property string zoomOut: "\u018E"
+ readonly property string zoomOut_medium: "\u018F"
+ readonly property string zoomSelection: "\u0190"
readonly property font iconFont: Qt.font({
"family": controlIcons.name,
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
index fadebdd720b..1a04c8ebc30 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
@@ -125,6 +125,7 @@ QtObject {
property real controlLabelGap: 5
property real controlGap: 5 // TODO different name
+ property real splitterMargin: 5
property real twoControlColumnGap: values.controlLabelGap
+ values.controlLabelWidth
+ values.controlGap
@@ -250,6 +251,7 @@ QtObject {
property real collectionTableVerticalMargin: 10
property real collectionCellMinimumWidth: 60
property real collectionCellMinimumHeight: 20
+ property real smallStatusIndicatorDiameter: 6
// NEW NEW NEW
readonly property int flowMargin: 7
@@ -350,6 +352,7 @@ QtObject {
property color themeControlOutline: Theme.color(Theme.DScontrolOutline)
property color themeControlOutlineInteraction: Theme.color(Theme.DScontrolOutlineInteraction)
property color themeControlOutlineDisabled: Theme.color(Theme.DScontrolOutlineDisabled)
+ property color themeControlOutlineHover: Theme.color(Theme.DScontrolOutline_topToolbarHover)
// Panels & Panes
property color themeBackgroundColorNormal: Theme.color(Theme.DSBackgroundColorNormal)
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf
index c650a651fe1..cdce3eeefd9 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf
Binary files differ
diff --git a/share/qtcreator/qmldesigner/studio_templates/files/qtquickfile/file.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/files/qtquickfile/file.qml.tpl
index f77f7d99c99..996d474208d 100644
--- a/share/qtcreator/qmldesigner/studio_templates/files/qtquickfile/file.qml.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/files/qtquickfile/file.qml.tpl
@@ -7,6 +7,7 @@ import %{ApplicationImport}
@endif
%{RootItem} {
+ id: root
@if %{UseImport}
width: Constants.width
height: Constants.height
diff --git a/share/qtcreator/qmldesigner/studio_templates/files/qtuiquickfile/file.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/files/qtuiquickfile/file.qml.tpl
index 47ca3af2995..e7e86e9ffa5 100644
--- a/share/qtcreator/qmldesigner/studio_templates/files/qtuiquickfile/file.qml.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/files/qtuiquickfile/file.qml.tpl
@@ -14,6 +14,7 @@ import %{ApplicationImport}
@endif
%{RootItem} {
+ id: root
@if %{UseImport}
width: Constants.width
height: Constants.height
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-3d/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/application-3d/wizard.json
index d5b1fef1e45..a5d0d7539c0 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/application-3d/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-3d/wizard.json
@@ -18,6 +18,8 @@
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
{ "key": "IsQt6Project", "value": "%{JS: value('QtQuickVersion') !== '2.15' }" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "UIClassName", "value": "Screen01" },
{ "key": "UIClassFileName", "value": "%{JS: Util.fileName('%{UIClassName}', 'ui.qml')}" },
@@ -236,7 +238,7 @@
"type": "ComboBox",
"data":
{
- "index": 3,
+ "index": 5,
"items":
[
{
@@ -270,6 +272,22 @@
'TargetQuickVersion': '6.5',
'TargetQuick3DVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6',
+ 'TargetQuick3DVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7',
+ 'TargetQuick3DVersion': '6.7'
+ })"
}
]
}
@@ -290,98 +308,49 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h"
- },
-
- {
- "source": "../common/CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt"
- },
- {
"source": "../common/App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
"openInEditor": true
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt"
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/Screen01.ui.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/Screen01.ui.qml.tpl
new file mode 100644
index 00000000000..41d562fb53e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/Screen01.ui.qml.tpl
@@ -0,0 +1,70 @@
+/*
+This is a UI file (.ui.qml) that is intended to be edited in Qt Design Studio only.
+It is supposed to be strictly declarative and only uses a subset of QML. If you edit
+this file manually, you might introduce QML code that is not supported by Qt Design Studio.
+Check out https://doc.qt.io/qtcreator/creator-quick-ui-forms.html for details on .ui.qml files.
+*/
+
+import QtQuick %{QtQuickVersion}
+import QtQuick.Controls %{QtQuickVersion}
+import QtQuick3D %{QtQuick3DVersion}
+import QtQuick3D.Effects %{QtQuick3DVersion}
+import QtQuick3D.Helpers %{QtQuick3DVersion}
+import %{ImportModuleName} %{ImportModuleVersion}
+
+Rectangle {
+ width: Constants.width
+ height: Constants.height
+
+ color: Constants.backgroundColor
+
+ View3D {
+ id: extendedView3D
+ anchors.fill: parent
+
+ environment: sceneEnvironment
+
+ ExtendedSceneEnvironment {
+ id: sceneEnvironment
+ antialiasingMode: SceneEnvironment.MSAA
+ antialiasingQuality: SceneEnvironment.High
+ }
+
+ Node {
+ id: scene
+ DirectionalLight {
+ id: directionalLight
+ }
+
+ PerspectiveCamera {
+ id: sceneCamera
+ z: 350
+ }
+
+ Model {
+ id: cubeModel
+ eulerRotation.y: 45
+ eulerRotation.x: 30
+ materials: defaultMaterial
+ source: "#Cube"
+ }
+ }
+ }
+
+ Item {
+ id: __materialLibrary__
+ PrincipledMaterial {
+ id: defaultMaterial
+ objectName: "Default Material"
+ baseColor: "#4aee45"
+ }
+ }
+
+ Text {
+ text: qsTr("Hello %{ProjectName}")
+ anchors.top: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: 100
+ font.family: Constants.font.family
+ }
+}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/contentmodule.main.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/contentmodule.main.qml.tpl
new file mode 100644
index 00000000000..96f5dbaa36c
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/contentmodule.main.qml.tpl
@@ -0,0 +1,36 @@
+import QtQuick %{QtQuickVersion}
+@if !%{IsQt6Project}
+import QtQuick.Window %{QtQuickVersion}
+@endif
+import %{ApplicationImport}
+@if %{UseVirtualKeyboard}
+import QtQuick.VirtualKeyboard %{QtQuickVersion}
+@endif
+
+Window {
+ width: Constants.width
+ height: Constants.height
+
+ visible: true
+
+ Screen01 {
+ }
+
+@if %{UseVirtualKeyboard}
+ InputPanel {
+ id: inputPanel
+ property bool showKeyboard : active
+ y: showKeyboard ? parent.height - height : parent.height
+ Behavior on y {
+ NumberAnimation {
+ duration: 200
+ easing.type: Easing.InOutQuad
+ }
+ }
+ anchors.leftMargin: Constants.width/10
+ anchors.rightMargin: Constants.width/10
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+@endif
+}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank.png b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank.png
new file mode 100644
index 00000000000..7cf79d6d02b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank@2.png b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank@2.png
new file mode 100644
index 00000000000..3dc3dde8f4d
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/desktop_blank@2.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/detailsPage.qml b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/detailsPage.qml
new file mode 100644
index 00000000000..224b9b1736f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/detailsPage.qml
@@ -0,0 +1,8 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import ProjectType
+
+DefaultProject {
+
+}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/wizard.json
new file mode 100644
index 00000000000..5f2e5bfcafd
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/wizard.json
@@ -0,0 +1,334 @@
+{
+ "version": 1,
+ "supportedProjectTypes": [ "QmlProjectManager.QmlProject" ],
+ "id": "QA.QtStudioUi3DExt",
+ "category": "B.StudioProject",
+ "trDescription": "Creates a project that uses default and 3D components, such as camera, light, model, and materials. Extended scene environment will also be included to enable various built-in effects.",
+ "trDisplayName": "3D Extended",
+ "trDisplayCategory": "General",
+ "icon": "desktop_blank.png",
+ "fontIconName": "wizardsGeneric",
+ "enabled": "%{JS: [ %{Plugins} ].indexOf('QmlProjectManager') >= 0}",
+ "platformIndependent": true,
+
+ "options":
+ [
+ { "key": "ProjectExecutableName", "value": "%{ProjectName}App" },
+ { "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
+ { "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
+ { "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "IsQt6Project", "value": "%{JS: value('QtQuickVersion') !== '2.15' }" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
+ { "key": "ImportModuleName", "value": "%{ProjectName}" },
+ { "key": "UIClassName", "value": "Screen01" },
+ { "key": "UIClassFileName", "value": "%{JS: Util.fileName('%{UIClassName}', 'ui.qml')}" },
+ { "key": "QtQuickVersion", "value": "%{JS: %{TargetQtVersion}.TargetQuickVersion}" },
+ { "key": "QtQuickFeature", "value": "QtSupport.Wizards.FeatureQtQuick.%{QtQuickVersion}" },
+ { "key": "QtQuickControlsStyle", "value": "Basic" },
+ { "key": "QtQuickControlsStyleTheme", "value": "%{JS: %{ControlsStyle}.QtQuickControlsStyleTheme}" },
+ { "key": "ApplicationImport", "value": "%{JS: value('IsQt6Project') === 'true' ? '%{ImportModuleName}' : '%{ImportModuleName} 1.0'}" },
+ { "key": "UseStandardResolution", "value": "%{JS: value('CustomScreenWidth') === '' || value('CustomScreenHeight') === ''}" },
+ { "key": "ScreenWidth", "value": "%{JS: value('UseStandardResolution') === 'true' ? %{ScreenFactor}.ScreenWidth : value('CustomScreenWidth')}" },
+ { "key": "ScreenHeight", "value": "%{JS: value('UseStandardResolution') === 'true' ? %{ScreenFactor}.ScreenHeight : value('CustomScreenHeight')}" },
+ { "key": "UseVirtualKeyboardDefault", "value": "%{JS: false}" },
+ { "key": "QtQuick3DVersion", "value": "%{JS: %{TargetQtVersion}.TargetQuick3DVersion}" },
+ { "key": "ImportModuleVersion", "value": "%{JS: value('IsQt6Project') === 'true' ? '' : '1.0'}" }
+ ],
+
+ "pages":
+ [
+ {
+ "defaultValues": "qmlapplication-project-page"
+ },
+ {
+ "trDisplayName": "Define Project Details",
+ "trShortTitle": "Details",
+ "typeId": "Fields",
+ "data":
+ [
+ {
+ "name": "ScreenFactor",
+ "trDisplayName": "Screen Resolution:",
+ "type": "ComboBox",
+ "enabled": "%{JS: value('UseStandardResolution')}",
+ "data":
+ {
+ "index": 2,
+ "items":
+ [
+ {
+ "trKey": "2960 x 1440",
+ "value":
+ "({
+ 'ScreenWidth': '2960',
+ 'ScreenHeight': '1440'
+ })"
+ },
+ {
+ "trKey": "2560 x 1440",
+ "value":
+ "({
+ 'ScreenWidth': '2560',
+ 'ScreenHeight': '1440'
+ })"
+ },
+ {
+ "trKey": "1920 x 1080",
+ "value":
+ "({
+ 'ScreenWidth': '1920',
+ 'ScreenHeight': '1080'
+ })"
+ },
+ {
+ "trKey": "1334 x 750",
+ "value":
+ "({
+ 'ScreenWidth': '1334',
+ 'ScreenHeight': '750'
+ })"
+ },
+ {
+ "trKey": "1280 x 960",
+ "value":
+ "({
+ 'ScreenWidth': '1280',
+ 'ScreenHeight': '960'
+ })"
+ },
+ {
+ "trKey": "1280 x 720",
+ "value":
+ "({
+ 'ScreenWidth': '1280',
+ 'ScreenHeight': '720'
+ })"
+ },
+ {
+ "trKey": "1024 x 768",
+ "value":
+ "({
+ 'ScreenWidth': '1024',
+ 'ScreenHeight': '768'
+ })"
+ },
+ {
+ "trKey": "640 x 480",
+ "value":
+ "({
+ 'ScreenWidth': '640',
+ 'ScreenHeight': '480'
+ })"
+ }
+ ]
+ }
+ },
+ {
+ "name": "ControlsStyle",
+ "trDisplayName": "Qt Quick Controls Style:",
+ "type": "ComboBox",
+ "data":
+ {
+ "index": 0,
+ "items":
+ [
+ {
+ "trKey": "Basic",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Basic',
+ 'QtQuickControlsStyleTheme': ''
+ })"
+ },
+ {
+ "trKey": "Material Light",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Material',
+ 'QtQuickControlsStyleTheme': 'Light'
+ })"
+ },
+ {
+ "trKey": "Material Dark",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Material',
+ 'QtQuickControlsStyleTheme': 'Dark'
+ })"
+ },
+ {
+ "trKey": "Universal Light",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Universal',
+ 'QtQuickControlsStyleTheme': 'Light'
+ })"
+ },
+ {
+ "trKey": "Universal Dark",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Universal',
+ 'QtQuickControlsStyleTheme': 'Dark'
+ })"
+ },
+ {
+ "trKey": "Universal System",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Universal',
+ 'QtQuickControlsStyleTheme': 'System'
+ })"
+ },
+ {
+ "trKey": "Fusion",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Fusion',
+ 'QtQuickControlsStyleTheme': ''
+ })"
+ },
+ {
+ "trKey": "Imagine",
+ "value":
+ "({
+ 'QtQuickControlsStyle': 'Imagine',
+ 'QtQuickControlsStyleTheme': ''
+ })"
+ }
+ ]
+ }
+ },
+ {
+ "name": "UseVirtualKeyboard",
+ "trDisplayName": "Use Qt Virtual Keyboard",
+ "type": "CheckBox",
+ "data":
+ {
+ "checked": "%{UseVirtualKeyboardDefault}"
+ }
+ },
+ {
+ "name": "CustomScreenWidth",
+ "trDisplayName": "Custom screen width:",
+ "mandatory": false,
+ "type": "LineEdit",
+ "data":
+ {
+ "validator": "^[0-9]*$",
+ "trText": ""
+ }
+ },
+ {
+ "name": "CustomScreenHeight",
+ "trDisplayName": "Custom screen height:",
+ "mandatory": false,
+ "type": "LineEdit",
+ "data":
+ {
+ "validator": "^[0-9]*$",
+ "trText": ""
+ }
+ },
+ {
+ "name": "TargetQtVersion",
+ "trDisplayName": "Target Qt Version:",
+ "mandatory": true,
+ "type": "ComboBox",
+ "data":
+ {
+ "index": 2,
+ "items":
+ [
+ {
+ "trKey": "Qt 6.5",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.5',
+ 'TargetQuick3DVersion': '6.5'
+ })"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6',
+ 'TargetQuick3DVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7',
+ 'TargetQuick3DVersion': '6.7'
+ })"
+ }
+ ]
+ }
+ }
+ ]
+ }
+
+ ],
+ "generators":
+ [
+ {
+ "typeId": "File",
+ "data":
+ [
+ {
+ "source": "../common/app.qmlproject.tpl",
+ "target": "%{ProjectDirectory}/%{QmlProjectFileName}",
+ "openAsProject": true
+ },
+ {
+ "source": "../common/qtquickcontrols2.conf.tpl",
+ "target": "%{ProjectDirectory}/qtquickcontrols2.conf"
+ },
+ {
+ "source": "../common/App.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
+ },
+ {
+ "source": "Screen01.ui.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
+ "openInEditor": true
+ },
+ {
+ "source": "../common/fonts.txt",
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
+ },
+ {
+ "source": "../common/asset_imports.txt",
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
+ },
+ {
+ "source": "../shared-plugin/name/importmodule.qmldir.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
+ },
+ {
+ "source": "../shared-plugin/name/Constants.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
+ },
+ {
+ "source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
+ },
+ {
+ "source": "../shared-plugin/name/EventListModel.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
+ },
+ {
+ "source": "../shared-plugin/name/EventListSimulator.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
+ },
+ {
+ "source": "../shared-plugin/name/designer/plugin.metainfo",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
+ }
+ ]
+ }
+ ]
+}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json
index 0708838a5ae..41fe2df289a 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json
@@ -17,6 +17,8 @@
{ "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "UIClassName", "value": "Screen01" },
{ "key": "UIClassFileName", "value": "%{JS: Util.fileName('%{UIClassName}', 'ui.qml')}" },
@@ -236,7 +238,7 @@
"type": "ComboBox",
"data":
{
- "index": 4,
+ "index": 6,
"items":
[
{
@@ -273,6 +275,20 @@
"({
'TargetQuickVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7'
+ })"
}
]
}
@@ -293,108 +309,48 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml",
- "condition": "%{IsQt6Project}"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../common/CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt",
- "condition": "%{IsQt6Project}"
- },
- {
"source": "../common/App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml"
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt",
- "condition": "%{IsQt6Project}"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt",
- "condition": "%{IsQt6Project}"
+ "target": "%{ProjectDirectory}/%{AssetDir}/Quick3DAssets.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.content.txt.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.content.txt.tpl
deleted file mode 100644
index a5a4360e3f2..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.content.txt.tpl
+++ /dev/null
@@ -1,14 +0,0 @@
-### This file is automatically generated by Qt Design Studio.
-### Do not change
-
-qt_add_library(content STATIC)
-qt6_add_qml_module(content
- URI "content"
- VERSION 1.0
- RESOURCE_PREFIX "/qt/qml"
- QML_FILES
- App.qml
- %{UIClassFileName}
- RESOURCES
- fonts/fonts.txt
-)
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.imports.txt.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.imports.txt.tpl
deleted file mode 100644
index 418f6d7719d..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.imports.txt.tpl
+++ /dev/null
@@ -1,4 +0,0 @@
-### This file is automatically generated by Qt Design Studio.
-### Do not change
-
-add_subdirectory(%{ImportModuleName})
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl
deleted file mode 100644
index eb621ef2193..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl
+++ /dev/null
@@ -1,56 +0,0 @@
-cmake_minimum_required(VERSION 3.21.1)
-
-option(LINK_INSIGHT "Link Qt Insight Tracker library" ON)
-option(BUILD_QDS_COMPONENTS "Build design studio components" ON)
-
-project(%{ProjectName}App LANGUAGES CXX)
-
-set(CMAKE_AUTOMOC ON)
-
-find_package(Qt6 6.2 REQUIRED COMPONENTS Core Gui Qml Quick)
-
-if (Qt6_VERSION VERSION_GREATER_EQUAL 6.3)
- qt_standard_project_setup()
-endif()
-
-qt_add_executable(%{ProjectName}App src/main.cpp)
-
-qt_add_resources(%{ProjectName}App "configuration"
- PREFIX "/"
- FILES
- qtquickcontrols2.conf
-)
-
-target_link_libraries(%{ProjectName}App PRIVATE
- Qt6::Core
- Qt6::Gui
- Qt6::Qml
- Qt6::Quick
-)
-
-set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/qml)
-set(QML_IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY}
- CACHE STRING "Import paths for Qt Creator's code model"
- FORCE
-)
-
-if (BUILD_QDS_COMPONENTS)
- include(${CMAKE_CURRENT_SOURCE_DIR}/qmlcomponents)
-endif()
-
-include(${CMAKE_CURRENT_SOURCE_DIR}/qmlmodules)
-
-if (LINK_INSIGHT)
- include(${CMAKE_CURRENT_SOURCE_DIR}/insight)
-endif ()
-
-include(GNUInstallDirs)
-install(TARGETS %{ProjectName}App
- BUNDLE DESTINATION .
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-)
-
-# make IDEs aware of the QML import path
-set(QML_IMPORT_PATH ${PROJECT_BINARY_DIR}/qml CACHE PATH
- "Path to the custom QML components defined by the project")
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/app.qmlproject.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/app.qmlproject.tpl
index 95975c197d1..6d346818e41 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/app.qmlproject.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/common/app.qmlproject.tpl
@@ -5,32 +5,36 @@ import QmlProject 1.1
@endif
Project {
- mainFile: "content/App.qml"
- mainUiFile: "content/Screen01.ui.qml"
+ mainFile: "%{ContentDir}/App.qml"
+ mainUiFile: "%{ContentDir}/Screen01.ui.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */
QmlFiles {
- directory: "content"
+ directory: "%{ProjectName}"
}
QmlFiles {
- directory: "imports"
+ directory: "%{ContentDir}"
+ }
+
+ QmlFiles {
+ directory: "%{AssetDir}"
}
JavaScriptFiles {
- directory: "content"
+ directory: "%{ProjectName}"
}
JavaScriptFiles {
- directory: "imports"
+ directory: "%{ProjectName}"
}
ImageFiles {
- directory: "content"
+ directory: "%{ContentDir}"
}
ImageFiles {
- directory: "asset_imports"
+ directory: "%{AssetDir}"
}
Files {
@@ -69,17 +73,12 @@ Project {
Files {
filter: "*.mesh"
- directory: "asset_imports"
+ directory: "%{AssetDir}"
}
Files {
filter: "*.qad"
- directory: "asset_imports"
- }
-
- Files {
- filter: "*.qml"
- directory: "asset_imports"
+ directory: "%{AssetDir}"
}
Environment {
@@ -109,12 +108,12 @@ Project {
@endif
/* List of plugin directories passed to QML runtime */
- importPaths: [ "imports", "asset_imports" ]
+ importPaths: [ "." ]
/* Required for deployment */
targetDirectory: "/opt/%{ProjectName}"
- qdsVersion: "4.3"
+ qdsVersion: "4.5"
quickVersion: "%{QtQuickVersion}"
@@ -125,10 +124,10 @@ Project {
/* args: Specifies command line arguments for qsb tool to generate shaders.
files: Specifies target files for qsb tool. If path is included, it must be relative to this file.
Wildcard '*' can be used in the file name part of the path.
- e.g. files: [ "content/shaders/*.vert", "*.frag" ] */
+ e.g. files: [ "%{ContentDir}/shaders/*.vert", "*.frag" ] */
ShaderTool {
args: "-s --glsl \\\"100 es,120,150\\\" --hlsl 50 --msl 12"
- files: [ "content/shaders/*" ]
+ files: [ "%{ContentDir}/shaders/*" ]
}
@endif
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/app_environment.h.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/app_environment.h.tpl
deleted file mode 100644
index e1f7ec2e23d..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/app_environment.h.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * This file is automatically generated by Qt Design Studio.
- * Do not change.
-*/
-
-#include <QGuiApplication>
-
-void set_qt_environment()
-{
-@if %{UseVirtualKeyboard}
- qputenv("QT_IM_MODULE", "qtvirtualkeyboard");
- qputenv("QT_VIRTUALKEYBOARD_DESKTOP_DISABLE", "1");
-@endif
- qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
- qputenv("QT_ENABLE_HIGHDPI_SCALING", "0");
- qputenv("QT_LOGGING_RULES", "qt.qml.connections=false");
- qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2.conf");
- qputenv("QML_COMPAT_RESOLVE_URLS_ON_ASSIGNMENT", "1");
-}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/contentmodule.main.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/contentmodule.main.qml.tpl
deleted file mode 100644
index ac0b0b28c02..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/contentmodule.main.qml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-import QtQuick %{QtQuickVersion}
-@if !%{IsQt6Project}
-import QtQuick.Window %{QtQuickVersion}
-@endif
-import %{ApplicationImport}
-
-Window {
- width: Constants.width
- height: Constants.height
-
- visible: true
-
- Screen01 {
- width: parent.width
- height: parent.height
- }
-}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_components_plugins.h.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_components_plugins.h.tpl
deleted file mode 100644
index 25d0a98384e..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_components_plugins.h.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * This file is automatically generated by Qt Design Studio.
- * Do not change.
-*/
-
-#include "qqmlextensionplugin.h"
-
-#ifdef BULD_QDS_COMPONENTS
-
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_ComponentsPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_EffectsPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_ApplicationPlugin)
-Q_IMPORT_QML_PLUGIN(FlowViewPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_LogicHelperPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_MultiTextPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_EventSimulatorPlugin)
-Q_IMPORT_QML_PLUGIN(QtQuick_Studio_EventSystemPlugin)
-
-#endif
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_plugins.h.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_plugins.h.tpl
deleted file mode 100644
index f9700ff4528..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/import_qml_plugins.h.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * This file is automatically generated by Qt Design Studio.
- * Do not change.
-*/
-
-#include <QtQml/qqmlextensionplugin.h>
-
-Q_IMPORT_QML_PLUGIN(contentPlugin)
-Q_IMPORT_QML_PLUGIN(%{ProjectPluginClassName})
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/insight.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/insight.tpl
deleted file mode 100644
index 8245e31f0d9..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/insight.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-### This file is automatically generated by Qt Design Studio.
-### Do not change
-
-if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qtinsight.conf)
- if (QT_VERSION GREATER_EQUAL 6.5.0)
- find_package(Qt6 REQUIRED COMPONENTS InsightTracker)
-
- qt_add_resources(${CMAKE_PROJECT_NAME} "configuration"
- PREFIX "/"
- FILES
- qtinsight.conf
- )
- target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
- Qt6::InsightTracker
- )
- else()
- message(WARNING "You need Qt 6.5.0 or newer to build the application.")
- endif()
-endif()
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/main.cpp.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/main.cpp.tpl
deleted file mode 100644
index 915d08462e2..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/main.cpp.tpl
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
-
-#include <QGuiApplication>
-#include <QQmlApplicationEngine>
-
-#include "app_environment.h"
-#include "import_qml_components_plugins.h"
-#include "import_qml_plugins.h"
-
-int main(int argc, char *argv[])
-{
- set_qt_environment();
-
- QGuiApplication app(argc, argv);
-
- QQmlApplicationEngine engine;
- const QUrl url(u"qrc:/qt/qml/Main/main.qml"_qs);
- QObject::connect(
- &engine, &QQmlApplicationEngine::objectCreated, &app,
- [url](QObject *obj, const QUrl &objUrl) {
- if (!obj && url == objUrl)
- QCoreApplication::exit(-1);
- },
- Qt::QueuedConnection);
-
- engine.addImportPath(QCoreApplication::applicationDirPath() + "/qml");
- engine.addImportPath(":/");
-
- engine.load(url);
-
- if (engine.rootObjects().isEmpty()) {
- return -1;
- }
-
- return app.exec();
-}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/main.qml b/share/qtcreator/qmldesigner/studio_templates/projects/common/main.qml
deleted file mode 100644
index 2c4f857df3b..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/main.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-/* This file is generated and only relevant for integrating the project into a Qt 6 and cmake based
-C++ project. */
-
-import QtQuick
-import content
-
-App {
-}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlcomponents.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlcomponents.tpl
deleted file mode 100644
index 2e940be0329..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlcomponents.tpl
+++ /dev/null
@@ -1,34 +0,0 @@
-### This file is automatically generated by Qt Design Studio.
-### Do not change
-
-message("Building designer components.")
-
-set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml")
-
-include(FetchContent)
-FetchContent_Declare(
- ds
- GIT_TAG qds-4.4
- GIT_REPOSITORY https://code.qt.io/qt-labs/qtquickdesigner-components.git
-)
-
-FetchContent_GetProperties(ds)
-FetchContent_Populate(ds)
-
-target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
- QuickStudioComponentsplugin
- QuickStudioEffectsplugin
- QuickStudioApplicationplugin
- FlowViewplugin
- QuickStudioLogicHelperplugin
- QuickStudioMultiTextplugin
- QuickStudioEventSimulatorplugin
- QuickStudioEventSystemplugin
- QuickStudioUtilsplugin
-)
-
-add_subdirectory(${ds_SOURCE_DIR} ${ds_BINARY_DIR})
-
-target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
- BULD_QDS_COMPONENTS=true
-)
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlmodules.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlmodules.tpl
deleted file mode 100644
index 5a22661b5a1..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/qmlmodules.tpl
+++ /dev/null
@@ -1,18 +0,0 @@
-### This file is automatically generated by Qt Design Studio.
-### Do not change
-
-qt6_add_qml_module(${CMAKE_PROJECT_NAME}
- URI "Main"
- VERSION 1.0
- RESOURCE_PREFIX "/qt/qml"
- NO_PLUGIN
- QML_FILES main.qml
-)
-
-add_subdirectory(content)
-add_subdirectory(imports)
-
-target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
- contentplugin
- %{ProjectPluginName}
-)
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/common/qtquickcontrols2.conf b/share/qtcreator/qmldesigner/studio_templates/projects/common/qtquickcontrols2.conf
deleted file mode 100644
index 9c7633fb0a6..00000000000
--- a/share/qtcreator/qmldesigner/studio_templates/projects/common/qtquickcontrols2.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-; This file can be edited to change the style of the application
-; Read "Qt Quick Controls 2 Configuration File" for details:
-; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html
-
-[Controls]
-Style=%{QtQuickControlsStyle}
-@if '%{QtQuickControlsStyle}' == 'Universal'
-
-[Universal]
-Theme=%{QtQuickControlsStyleTheme}
-;Accent=Steel
-;Foreground=Brown
-;Background=Steel
-@endif
-@if '%{QtQuickControlsStyle}' == 'Material'
-
-[Material]
-Theme=%{QtQuickControlsStyleTheme}
-;Accent=BlueGrey
-;Primary=BlueGray
-;Foreground=Brown
-;Background=Grey
-@endif
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/desktop-launcher/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/desktop-launcher/wizard.json
index 913eb0bf28b..ddaf5021543 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/desktop-launcher/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/desktop-launcher/wizard.json
@@ -17,6 +17,8 @@
{ "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "UIClassName", "value": "Screen01" },
{ "key": "UIClassFileName", "value": "%{JS: Util.fileName('%{UIClassName}', 'ui.qml')}" },
@@ -271,6 +273,13 @@
"({
'TargetQuickVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6'
+ })"
}
]
}
@@ -291,97 +300,49 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h"
- },
- {
- "source": "../common/CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt"
- },
- {
"source": "../common/App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
"openInEditor": true
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt"
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-scroll/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-scroll/wizard.json
index 944b6b6289c..585a73aa907 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-scroll/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-scroll/wizard.json
@@ -17,6 +17,8 @@
{ "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "UIClassName", "value": "Screen01" },
{ "key": "UIClassFileName", "value": "%{JS: Util.fileName('%{UIClassName}', 'ui.qml')}" },
@@ -193,7 +195,7 @@
"type": "ComboBox",
"data":
{
- "index": 4,
+ "index": 6,
"items":
[
{
@@ -230,6 +232,20 @@
"({
'TargetQuickVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7'
+ })"
}
]
}
@@ -250,97 +266,49 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h"
- },
- {
- "source": "../common/CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt"
- },
- {
"source": "../common/App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
"openInEditor": true
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt"
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-stack/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-stack/wizard.json
index c8733770e07..a44a1429bee 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-stack/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-stack/wizard.json
@@ -17,6 +17,8 @@
{ "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "IsQt6Project", "value": "%{JS: value('QtQuickVersion') !== '2.15' }" },
{ "key": "QtQuickVersion", "value": "%{JS: %{TargetQtVersion}.TargetQuickVersion}" },
@@ -191,7 +193,7 @@
"type": "ComboBox",
"data":
{
- "index": 4,
+ "index": 6,
"items":
[
{
@@ -228,6 +230,20 @@
"({
'TargetQuickVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7'
+ })"
}
]
}
@@ -247,102 +263,54 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h"
- },
- {
- "source": "CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt"
- },
- {
"source": "App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
"openInEditor": true
},
{
"source": "Screen02.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen02.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen02.ui.qml",
"openInEditor": true
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt"
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-swipe/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-swipe/wizard.json
index 295c85aa63a..b3f70a8b797 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/mobile-swipe/wizard.json
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/mobile-swipe/wizard.json
@@ -17,6 +17,8 @@
{ "key": "ProjectPluginName", "value": "%{ProjectName}plugin" },
{ "key": "ProjectPluginClassName", "value": "%{ProjectName}Plugin" },
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qmlproject')}" },
+ { "key": "AssetDir", "value": "GeneratedComponents" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
{ "key": "ImportModuleName", "value": "%{ProjectName}" },
{ "key": "IsQt6Project", "value": "%{JS: value('QtQuickVersion') !== '2.15' }" },
{ "key": "QtQuickVersion", "value": "%{JS: %{TargetQtVersion}.TargetQuickVersion}" },
@@ -191,7 +193,7 @@
"type": "ComboBox",
"data":
{
- "index": 4,
+ "index": 6,
"items":
[
{
@@ -228,6 +230,20 @@
"({
'TargetQuickVersion': '6.5'
})"
+ },
+ {
+ "trKey": "Qt 6.6",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.6'
+ })"
+ },
+ {
+ "trKey": "Qt 6.7",
+ "value":
+ "({
+ 'TargetQuickVersion': '6.7'
+ })"
}
]
}
@@ -247,102 +263,54 @@
"openAsProject": true
},
{
- "source": "../common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt"
- },
- {
- "source": "../common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules"
- },
- {
- "source": "../common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents"
- },
- {
- "source": "../common/insight.tpl",
- "target": "%{ProjectDirectory}/insight"
- },
- {
- "source": "../common/main.qml",
- "target": "%{ProjectDirectory}/main.qml"
- },
- {
"source": "../common/qtquickcontrols2.conf.tpl",
"target": "%{ProjectDirectory}/qtquickcontrols2.conf"
},
{
- "source": "../common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp"
- },
- {
- "source": "../common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h"
- },
- {
- "source": "../common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h"
- },
- {
- "source": "../common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h"
- },
- {
- "source": "CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt"
- },
- {
"source": "App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml"
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml"
},
{
"source": "Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
"openInEditor": true
},
{
"source": "Screen02.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen02.ui.qml",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen02.ui.qml",
"openInEditor": true
},
{
"source": "../common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt"
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt"
},
{
"source": "../common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt"
- },
- {
- "source": "../common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt"
- },
- {
- "source": "../shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt"
+ "target": "%{ProjectDirectory}/%{AssetDir}/%{AssetDir}.txt"
},
{
"source": "../shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir"
},
{
"source": "../shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml"
},
{
"source": "../shared-plugin/name/DirectoryFontLoader.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/DirectoryFontLoader.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/DirectoryFontLoader.qml"
},
{
"source": "../shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml"
},
{
"source": "../shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml"
},
{
"source": "../shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo"
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo"
}
]
}
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Colors.json.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Colors.json.tpl
new file mode 100644
index 00000000000..052b7abd015
--- /dev/null
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Colors.json.tpl
@@ -0,0 +1,18 @@
+[
+ {
+ "colorCode": "#ff0000",
+ "name": "Red"
+ },
+ {
+ "colorCode": "#00ff00",
+ "name": "Green"
+ },
+ {
+ "colorCode": "#0000ff",
+ "name": "Blue"
+ },
+ {
+ "colorCode": "#ffffff",
+ "name": "White"
+ }
+]
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl
index cc5da7be55a..35aa48896bd 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl
@@ -26,7 +26,7 @@ QtObject {
@if %{IsQt6Project}
property StudioApplication application: StudioApplication {
- fontPath: Qt.resolvedUrl("../../content/" + relativeFontDirectory)
+ fontPath: Qt.resolvedUrl("../../%{ContentDir}/" + relativeFontDirectory)
}
@else
property DirectoryFontLoader directoryFontLoader: DirectoryFontLoader {
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/DirectoryFontLoader.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/DirectoryFontLoader.qml.tpl
index 677fe054285..56ecc9f2f8f 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/DirectoryFontLoader.qml.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/DirectoryFontLoader.qml.tpl
@@ -7,7 +7,7 @@ import Qt.labs.folderlistmodel %{QtQuickVersion}
QtObject {
id: loader
- property url fontDirectory: Qt.resolvedUrl("../../content/" + relativeFontDirectory)
+ property url fontDirectory: Qt.resolvedUrl("../../%{ContentDir}/" + relativeFontDirectory)
property string relativeFontDirectory: "fonts"
function loadFont(url) {
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/importmodule.qmldir.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/importmodule.qmldir.tpl
index c0050290386..be4e251f8c2 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/importmodule.qmldir.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/importmodule.qmldir.tpl
@@ -1,4 +1,4 @@
-Module %{ImportModuleName}
+module %{ImportModuleName}
singleton Constants 1.0 Constants.qml
EventListSimulator 1.0 EventListSimulator.qml
EventListModel 1.0 EventListModel.qml
diff --git a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/models.json.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/models.json.tpl
index 8ebda6fb7e6..ca9c1736517 100644
--- a/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/models.json.tpl
+++ b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/models.json.tpl
@@ -1,30 +1,56 @@
{
- "book": [
- {
- "author": "Nigel Rees",
- "category": "reference",
- "price": 8.95,
- "title": "Sayings of the Century"
- },
- {
- "author": "Evelyn Waugh",
- "category": "fiction",
- "price": 12.99,
- "title": "Sword of Honor"
- },
- {
- "author": "Herman Melville",
- "category": "fiction",
- "isbn": "0-553-21311-3",
- "price": 8.99,
- "title": "Moby Dick"
- },
- {
- "author": "J. R. R. Tolkien",
- "category": "fiction",
- "isbn": "0-395-19395-8",
- "price": 22.99,
- "title": "The Lord of the Rings"
- }
- ]
+ "book": {
+ "columns": [
+ {
+ "name": "author",
+ "type": "String"
+ },
+ {
+ "name": "category",
+ "type": "String"
+ },
+ {
+ "name": "isbn",
+ "type": "String"
+ },
+ {
+ "name": "price",
+ "type": "Real"
+ },
+ {
+ "name": "title",
+ "type": "String"
+ }
+ ],
+ "data": [
+ [
+ "Nigel Rees",
+ "reference",
+ "",
+ 8.95,
+ "Sayings of the Century"
+ ],
+ [
+ "Evelyn Waugh",
+ "fiction",
+ "",
+ 12.99,
+ "Sword of Honor"
+ ],
+ [
+ "Herman Melville",
+ "fiction",
+ "0-553-21311-3",
+ 8.99,
+ "Moby Dick"
+ ],
+ [
+ "J. R. R. Tolkien",
+ "fiction",
+ "0-395-19395-8",
+ 22.99,
+ "The Lord of the Rings"
+ ]
+ ]
+ }
}
diff --git a/share/qtcreator/qmldesigner/toolbar/Main.qml b/share/qtcreator/qmldesigner/toolbar/Main.qml
index af838878323..88a9bd744a2 100644
--- a/share/qtcreator/qmldesigner/toolbar/Main.qml
+++ b/share/qtcreator/qmldesigner/toolbar/Main.qml
@@ -190,6 +190,26 @@ Rectangle {
onActivated: backend.openFileByIndex(index)
}
+ Text {
+ parent:currentFile.contentItem
+ visible: backend.isDocumentDirty
+
+ anchors.right: parent.right
+ anchors.rightMargin: parent.width - metric.textWidth - 18
+ color: StudioTheme.Values.themeTextColor
+ text: StudioTheme.Constants.wildcard
+ font.family: StudioTheme.Constants.iconFont.family
+ font.pixelSize: StudioTheme.Values.smallIconFont
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.verticalCenterOffset: -4
+
+ FontMetrics {
+ id: metric
+ font: currentFile.font
+ property int textWidth: metric.boundingRect(currentFile.currentText).width
+ }
+ }
+
ToolbarButton {
id: backButton
anchors.verticalCenter: parent.verticalCenter
@@ -336,7 +356,9 @@ Rectangle {
anchors.rightMargin: 8
iconFont: StudioTheme.Constants.font
buttonIcon: qsTr("Share")
- visible: !root.flyoutEnabled
+ visible: !root.flyoutEnabled && backend.isSharingEnabled
+ enabled: backend.isSharingEnabled
+ tooltip: shareButton.enabled ? qsTr("Share your project online.") : qsTr("Sharing your project online is disabled in the Community Version.")
onClicked: backend.shareApplicationOnline()
}
@@ -458,6 +480,8 @@ Rectangle {
width: shareButton.width
iconFont: StudioTheme.Constants.font
buttonIcon: qsTr("Share")
+ enabled: backend.isSharingEnabled
+ tooltip: shareButton.enabled ? qsTr("Share your project online.") : qsTr("Sharing your project online is disabled in the Community Version.")
onClicked: backend.shareApplicationOnline()
}
diff --git a/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml b/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml
index 73b023bddc0..555596223b9 100644
--- a/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml
@@ -88,7 +88,17 @@ Item {
Layout.fillWidth: true
Layout.fillHeight: true
hover: hoverHandler.hovered
- model: ExamplesModel { id: examplesModel}
+
+ Component.onCompleted: {
+ // remove items with old versions from the examples model
+ for (let i = examplesModel.count - 1; i >= 0; --i) {
+ if (!projectModel.exampleVersionOk(examplesModel.get(i).minQDSVersion))
+ examplesModel.remove(i)
+ }
+ }
+
+ model: ExamplesModelV2 { id: examplesModel }
+
delegate: ThumbnailDelegate {
type: ThumbnailDelegate.Type.Example
downloadable: showDownload
diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme
index c2846fa0940..463204fd513 100644
--- a/share/qtcreator/themes/dark.creatortheme
+++ b/share/qtcreator/themes/dark.creatortheme
@@ -502,7 +502,6 @@ DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=true
DrawToolBarBorders=false
-ApplyThemePaletteGlobally=true
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=true
diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme
index f2c4c7f7a43..e6cdab1bc30 100644
--- a/share/qtcreator/themes/default.creatortheme
+++ b/share/qtcreator/themes/default.creatortheme
@@ -1,5 +1,5 @@
[General]
-Includes=light.figmatokens
+Includes=light.figmatokens, light-palette.inc
ThemeName=Classic
PreferredStyles=
@@ -465,13 +465,12 @@ TerminalAnsi15=e5e5e6
[Flags]
ComboBoxDrawTextShadow=true
-DerivePaletteFromTheme=false
+DerivePaletteFromThemeIfNeeded=true
DrawIndicatorBranch=false
DrawSearchResultWidgetFrame=true
DrawTargetSelectorBottom=true
DrawToolBarHighlights=true
DrawToolBarBorders=false
-ApplyThemePaletteGlobally=false
FlatToolBars=false
FlatSideBarIcons=false
FlatProjectsMode=false
diff --git a/share/qtcreator/themes/design-light.creatortheme b/share/qtcreator/themes/design-light.creatortheme
index 41a9f07ba84..5271d5fc57a 100644
--- a/share/qtcreator/themes/design-light.creatortheme
+++ b/share/qtcreator/themes/design-light.creatortheme
@@ -513,7 +513,6 @@ DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=false
DrawToolBarBorders=true
-ApplyThemePaletteGlobally=true
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=false
diff --git a/share/qtcreator/themes/design.creatortheme b/share/qtcreator/themes/design.creatortheme
index 11022bd7e5d..874c5116e03 100644
--- a/share/qtcreator/themes/design.creatortheme
+++ b/share/qtcreator/themes/design.creatortheme
@@ -562,7 +562,6 @@ DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=false
DrawToolBarBorders=false
-ApplyThemePaletteGlobally=true
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=true
diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme
index 9737e9cd53e..bdf46614b05 100644
--- a/share/qtcreator/themes/flat-dark.creatortheme
+++ b/share/qtcreator/themes/flat-dark.creatortheme
@@ -506,7 +506,6 @@ DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=false
DrawToolBarBorders=false
-ApplyThemePaletteGlobally=true
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=true
diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme
index 1ff8a7a3ff4..a85d3654d88 100644
--- a/share/qtcreator/themes/flat-light.creatortheme
+++ b/share/qtcreator/themes/flat-light.creatortheme
@@ -1,25 +1,28 @@
[General]
-Includes=light.figmatokens
+Includes=light.figmatokens, light-palette.inc
ThemeName=Flat Light
PreferredStyles=
[Palette]
-shadowBackground=ffe4e4e4
-text=ff000000
-textDisabled=55000000
+shadowBackground=PaletteDark
+text=PaletteWindowText
+textDisabled=PaletteTextDisabled
toolBarItem=a0010508
toolBarItemDisabled=38000000
fancyBarsNormalTextColor=ff000000
fancyBarsBoldTextColor=a0010508
hoverBackground=1a000000
selectedBackground=a8ffffff
-normalBackground=ffffffff
-alternateBackground=ff515151
+normalBackground=PaletteWindow
+alternateBackground=PaletteAlternateBase
stop_error=ffec7373
run_success=ff52c23b
splitter=ffbdbebf
error=ffdf4f4f
warning=ffecbc1c
+textColorLink=PaletteLink
+textColorLinkVisited=PaletteLinkVisited
+backgroundColorDisabled=PaletteWindowDisabled
qmlDesignerButtonColor=fff8f8f8
;DS Theme Palette START
@@ -474,13 +477,12 @@ TerminalAnsi15=e5e5e6
[Flags]
ComboBoxDrawTextShadow=false
-DerivePaletteFromTheme=false
+DerivePaletteFromThemeIfNeeded=true
DrawIndicatorBranch=true
DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=false
DrawToolBarBorders=true
-ApplyThemePaletteGlobally=false
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=false
diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme
index f479077889e..7fd222e168a 100644
--- a/share/qtcreator/themes/flat.creatortheme
+++ b/share/qtcreator/themes/flat.creatortheme
@@ -1,23 +1,26 @@
[General]
-Includes=light.figmatokens
+Includes=light.figmatokens, light-palette.inc
ThemeName=Flat
PreferredStyles=
[Palette]
shadowBackground=ff404142
-text=ff000000
-textDisabled=55000000
+text=PaletteWindowText
+textDisabled=PaletteTextDisabled
toolBarItem=bcfbfdff
toolBarItemDisabled=56a5a6a7
fancyBarsNormalTextColor=ffffffff
fancyBarsBoldTextColor=b6fbfdff
hoverBackground=28ffffff
selectedBackground=7a000000
-normalBackground=ffffffff
-alternateBackground=ff515151
+normalBackground=PaletteWindow
+alternateBackground=PaletteAlternateBase
error=ffdf4f4f
warning=ffecbc1c
splitter=ff313131
+textColorLink=PaletteLink
+textColorLinkVisited=PaletteLinkVisited
+backgroundColorDisabled=PaletteWindowDisabled
qmlDesignerButtonColor=ff4c4e50
;DS Theme Palette START
@@ -472,13 +475,12 @@ TerminalAnsi15=e5e5e6
[Flags]
ComboBoxDrawTextShadow=false
-DerivePaletteFromTheme=false
+DerivePaletteFromThemeIfNeeded=true
DrawIndicatorBranch=true
DrawSearchResultWidgetFrame=false
DrawTargetSelectorBottom=false
DrawToolBarHighlights=false
DrawToolBarBorders=false
-ApplyThemePaletteGlobally=false
FlatToolBars=true
FlatSideBarIcons=true
FlatProjectsMode=false
diff --git a/share/qtcreator/themes/light-palette.inc b/share/qtcreator/themes/light-palette.inc
new file mode 100644
index 00000000000..99fe763a8bd
--- /dev/null
+++ b/share/qtcreator/themes/light-palette.inc
@@ -0,0 +1,41 @@
+[Palette]
+PaletteWindow=ffffffff
+PaletteWindowDisabled=ffececec
+PaletteWindowText=ff000000
+PaletteWindowTextDisabled=PaletteTextDisabled
+PaletteBase=PaletteWindow
+PaletteBaseDisabled=PaletteWindowDisabled
+PaletteAlternateBase=ff515151
+;PaletteAlternateBaseDisabled
+PaletteToolTipBase=PaletteDark
+;PaletteToolTipBaseDisabled
+PaletteToolTipText=PaletteWindowText
+;PaletteToolTipTextDisabled
+PaletteText=PaletteWindowText
+PaletteTextDisabled=55000000
+PaletteButton=PaletteDark
+;PaletteButtonDisabled
+PaletteButtonText=PaletteWindowText
+PaletteButtonTextDisabled=PaletteTextDisabled
+PaletteBrightText=ffffffff
+;PaletteBrightTextDisabled
+PaletteHighlight=ffa5cdff
+;PaletteHighlightDisabled
+PaletteHighlightedText=ff000000
+;PaletteHighlightedTextDisabled
+PaletteLink=ff0000ff
+;PaletteLinkDisabled
+PaletteLinkVisited=ff800080
+;PaletteLinkVisitedDisabled
+;PaletteLight
+;PaletteLightDisabled
+;PaletteMidlight
+;PaletteMidlightDisabled
+PaletteDark=ffe4e4e4
+;PaletteDarkDisabled
+PaletteMid=ffa9a9a9
+;PaletteMidDisabled
+;PaletteShadow
+;PaletteShadowDisabled
+PalettePlaceholderText=3f000000
+;PalettePlaceholderTextDisabled
diff --git a/share/qtcreator/translations/qtcreator_da.ts b/share/qtcreator/translations/qtcreator_da.ts
index 43f21468465..ca9e8e47a43 100644
--- a/share/qtcreator/translations/qtcreator_da.ts
+++ b/share/qtcreator/translations/qtcreator_da.ts
@@ -24002,52 +24002,36 @@ Brug det kun hvis du prototyper. Du kan ikke oprette et fuldt program med dette.
<translation>Page med typeId&apos;et &quot;%1&quot; har ugyldigt &quot;index&quot;.</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Stien &quot;%1&quot; findes ikke under tjek af Json-assistentens søgestier.
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>Stien &quot;%1&quot; findes ikke under tjek af JSON-assistentens søgestier.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Tjekker &quot;%1&quot; for %2.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Tjekker &quot;%1&quot; for %2.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Kunne ikke parse &quot;%1&quot;:%2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Kunne ikke parse &quot;%1&quot;:%2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* Fandt ikke et JSON-objekt i &quot;%1&quot;.
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* Fandt ikke et JSON-objekt i &quot;%1&quot;.</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* Konfiguration fundet og parset.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* Konfiguration fundet og parset.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* Version %1 understøttes ikke.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* Version %1 understøttes ikke.</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>* Kunne ikke oprette: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>* Kunne ikke oprette: %1</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: &quot;%1&quot; ikke fundet
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: &quot;%1&quot; ikke fundet.</translation>
</message>
<message>
<source>key not found.</source>
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 28c3e2c44ce..888a8bb7650 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -110,7 +110,7 @@
</message>
<message>
<source>Frequently used signals</source>
- <translation>Häufig benutzte Signale</translation>
+ <translation>Häufig verwendete Signale</translation>
</message>
<message>
<source>Property changes</source>
@@ -140,7 +140,7 @@
<translation>Erweitert</translation>
</message>
<message>
- <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items. </source>
+ <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -7772,11 +7772,11 @@ Exporting assets: %2</source>
</message>
<message>
<source>If you select this radio button, Qt Quick Designer always uses the QML emulation layer (QML Puppet) located at the following path.</source>
- <translation>Wenn Sie diesen Radiobutton auswählen, benutzt der Qt Quick Designer immer die QML-Emulationsschicht (QML Puppet) im folgenden Pfad.</translation>
+ <translation>Wenn Sie diesen Radiobutton auswählen, verwendet der Qt Quick Designer immer die QML-Emulationsschicht (QML Puppet) im folgenden Pfad.</translation>
</message>
<message>
<source>Use fallback QML emulation layer</source>
- <translation>Fallback QML-Emulationsschicht benutzen</translation>
+ <translation>Fallback QML-Emulationsschicht verwenden</translation>
</message>
<message>
<source>Path:</source>
@@ -7840,7 +7840,7 @@ Exporting assets: %2</source>
</message>
<message>
<source>Warn about using .qml files instead of .ui.qml files</source>
- <translation>Bei der Benutzung von .qml-Dateien statt .ui.qml-Dateien warnen</translation>
+ <translation>Bei der Verwendung von .qml-Dateien statt .ui.qml-Dateien warnen</translation>
</message>
<message>
<source>Width:</source>
@@ -7856,7 +7856,7 @@ Exporting assets: %2</source>
</message>
<message>
<source>Use QML emulation layer that is built with the selected Qt</source>
- <translation>Mit dem gewählten Qt erstellte QML-Emulationsschicht benutzen</translation>
+ <translation>Mit dem gewählten Qt erstellte QML-Emulationsschicht verwenden</translation>
</message>
<message>
<source>qsTranslate()</source>
@@ -8393,7 +8393,7 @@ Locked components cannot be modified or selected.</source>
</message>
<message>
<source>Do not show this dialog again</source>
- <translation>Diesen Dialog nicht noch einmal anzeigen</translation>
+ <translation>Diesen Dialog nicht erneut anzeigen</translation>
</message>
<message>
<source>Cancel</source>
@@ -9544,7 +9544,7 @@ Locked components cannot be modified or selected.</source>
</message>
<message>
<source>Edit</source>
- <translation>Editieren</translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
<source>Anchors</source>
@@ -10360,7 +10360,7 @@ Locked components cannot be modified or selected.</source>
</message>
<message>
<source>Retype password:</source>
- <translation>Passwort noch einmal eingeben:</translation>
+ <translation>Passwort erneut eingeben:</translation>
</message>
<message>
<source>Show password</source>
@@ -10763,7 +10763,7 @@ in the system&apos;s browser for manual download.</source>
Diese Bibliotheken können mit Ihrer Anwendung weitergegeben werden, falls
diese SSL-Funktionen verwendet. Sie finden eine Checkbox unter &quot;Projekte &gt; Erstellen &gt;
Schritte zum Erstellen &gt; Android-APK erstellen &gt; Zusätzliche Bibliotheken&quot;.
-Falls das automatische Herunterladen scheitert, wird Qt Creator vorschlagen, die URL zum
+Falls das automatische Herunterladen fehlschlägt, wird Qt Creator vorschlagen, die URL zum
manuellen Herunterladen im Browser des System zu öffnen.</translation>
</message>
<message>
@@ -11148,11 +11148,11 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message>
<message>
<source>Package deploy: Failed to pull &quot;%1&quot; to &quot;%2&quot;.</source>
- <translation>Paket-Deployment: &quot;pull&quot; von &quot;%1&quot; nach &quot;%2&quot; scheiterte.</translation>
+ <translation>Paket-Deployment: &quot;pull&quot; von &quot;%1&quot; nach &quot;%2&quot; ist fehlgeschlagen.</translation>
</message>
<message>
<source>Install failed</source>
- <translation>Installation gescheitert</translation>
+ <translation>Installation fehlgeschlagen</translation>
</message>
<message>
<source>Android package (*.apk)</source>
@@ -11240,7 +11240,7 @@ Das Kit unterstützt &quot;%2&quot;, aber das Gerät verwendet &quot;%3&quot;.</
<source>Deployment failed with the following errors:
</source>
- <translation>Das Deployment ist mit den folgenden Fehlern gescheitert:
+ <translation>Das Deployment ist mit den folgenden Fehlern fehlgeschlagen:
</translation>
</message>
@@ -11365,7 +11365,7 @@ Der vom Kit mindestens benötigte API-Level ist %1.</translation>
<message>
<source>Android package installation failed.
%1</source>
- <translation>Android-Paketinstallation gescheitert.
+ <translation>Android-Paketinstallation fehlgeschlagen.
%1</translation>
</message>
<message>
@@ -11639,7 +11639,7 @@ Breche ausstehende Operationen ab...
</message>
<message>
<source>The operation requires user interaction. Use the &quot;sdkmanager&quot; command-line tool.</source>
- <translation>Die Operation benötigt Benutzereingaben. Benutzen Sie das Kommandozeilenwerkzeug &quot;sdkmanager&quot;.</translation>
+ <translation>Die Operation benötigt Benutzereingaben. Verwenden Sie das Kommandozeilenwerkzeug &quot;sdkmanager&quot;.</translation>
</message>
<message>
<source>License command failed.</source>
@@ -12131,7 +12131,7 @@ Rufen Sie QtAndroid::hideSplashScreen() auf, um einen Startbildschirm zu verstec
</message>
<message>
<source>Select master image to use.</source>
- <translation>Wählen Sie das zu benutzende Hauptbild aus.</translation>
+ <translation>Wählen Sie das zu verwendende Hauptbild aus.</translation>
</message>
<message>
<source>Master image:</source>
@@ -12181,7 +12181,7 @@ Rufen Sie QtAndroid::hideSplashScreen() auf, um einen Startbildschirm zu verstec
<source>An image is used for the splashscreen. Qt Creator manages
splashscreen by using a different method which requires changing
the manifest file by overriding your settings. Allow override?</source>
- <translation>Für den Startbildschirm wird ein Bild benutzt. Qt Creator verwaltet
+ <translation>Für den Startbildschirm wird ein Bild verwendet. Qt Creator verwaltet
Startbildschirme auf andere Weise, was eine Änderung der Manifest-Datei
und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlauben?</translation>
</message>
@@ -12294,7 +12294,7 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message>
<message>
<source>Using: %1.</source>
- <translation>Benutze: %1.</translation>
+ <translation>Verwende: %1.</translation>
</message>
<message>
<source>Cannot debug: Only QML and native applications are supported.</source>
@@ -12353,7 +12353,7 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message>
<message>
<source>Number of worker threads used when scanning for tests.</source>
- <translation>Anzahl der Threads, die zum Suchen nach Tests benutzt werden.</translation>
+ <translation>Anzahl der Threads, die zum Suchen nach Tests verwendet werden.</translation>
</message>
<message>
<source>Omit run configuration warnings</source>
@@ -12365,7 +12365,7 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message>
<message>
<source>Limit result description:</source>
- <translation>Beschreibung der Resultate begrenzen:</translation>
+ <translation>Beschreibung der Ergebnisse begrenzen:</translation>
</message>
<message>
<source>Limit number of lines shown in test result tooltip and description.</source>
@@ -12397,7 +12397,7 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message>
<message>
<source>Timeout used when executing each test case.</source>
- <translation>Zeitlimit für jeden Testfall benutzen.</translation>
+ <translation>Zeitlimit, das während der Ausführung für jeden Testfall verwendet wird.</translation>
</message>
<message>
<source>Scan threads:</source>
@@ -12483,7 +12483,7 @@ Warnung: Dies ist eine experimentelle Funktion und könnte dazu führen, dass di
</message>
<message>
<source>Only for unsuccessful test runs</source>
- <translation>Nur bei gescheiterten Tests</translation>
+ <translation>Nur bei fehlgeschlagenen Tests</translation>
</message>
<message>
<source>Automatically run</source>
@@ -12617,7 +12617,7 @@ Warnung: Dies ist eine experimentelle Funktion und könnte dazu führen, dass di
<source>Running tests failed.
%1
Executable: %2</source>
- <translation>Ausführung von Tests gescheitert.
+ <translation>Ausführung von Tests fehlgeschlagen.
%1
Ausführbare Datei: %2</translation>
</message>
@@ -12659,7 +12659,7 @@ Ausführbare Datei: %2</translation>
</message>
<message>
<source>Expected Fail</source>
- <translation>Erwartetes Scheitern</translation>
+ <translation>Erwartetes Fehlschlagen</translation>
</message>
<message>
<source>Unexpected Pass</source>
@@ -12873,7 +12873,7 @@ Dies könnte Probleme während der Ausführung verursachen.
</message>
<message>
<source>Unable to display test results when using CDB.</source>
- <translation>Wenn CDB benutzt wird, können keine Testergebnisse angezeigt werden.</translation>
+ <translation>Wenn CDB verwendet wird, können keine Testergebnisse angezeigt werden.</translation>
</message>
<message>
<source>Build failed. Canceling test run.</source>
@@ -12929,11 +12929,11 @@ Dies könnte Probleme während der Ausführung verursachen.
</message>
<message>
<source>Number of resamples used for statistical bootstrapping.</source>
- <translation>Anzahl der für statistisches Bootstrapping benutzten Resamples.</translation>
+ <translation>Anzahl der für statistisches Bootstrapping verwendeten Resamples.</translation>
</message>
<message>
<source>Confidence interval used for statistical bootstrapping.</source>
- <translation>Für das statistische Bootstrapping benutzte Konfidenzinterval.</translation>
+ <translation>Konfidenzinterval, das für statistisches Bootstrapping verwendet wird.</translation>
</message>
<message>
<source>Benchmark confidence interval</source>
@@ -13125,7 +13125,7 @@ Dies könnte Probleme während der Ausführung verursachen.
</message>
<message>
<source>A seed of 0 means no randomization. A value of 1 uses the current time, any other value is used as random seed generator.</source>
- <translation>Ein Startwert von 0 bedeutet keine Randomisierung. Ein Wert von 1 benutzt die aktuelle Zeit, jeder andere Wert wird als Startwert für Zufallszahlen benutzt.</translation>
+ <translation>Ein Startwert von 0 bedeutet keine Randomisierung. Ein Wert von 1 verwendet die aktuelle Zeit, jeder andere Wert wird als Startwert für Zufallszahlen verwendet.</translation>
</message>
<message>
<source>Randomize</source>
@@ -13247,7 +13247,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Uses tick counter when executing benchmarks.</source>
- <translation>Den Tickzähler bei der Benchmarkausführung benutzen.</translation>
+ <translation>Den Tickzähler bei der Benchmarkausführung verwenden.</translation>
</message>
<message>
<source>Tick counter</source>
@@ -13255,7 +13255,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Uses event counter when executing benchmarks.</source>
- <translation>Ereigniszähler bei der Benchmarkausführung benutzen.</translation>
+ <translation>Ereigniszähler bei der Benchmarkausführung verwenden.</translation>
</message>
<message>
<source>Event counter</source>
@@ -13263,7 +13263,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Uses Valgrind Callgrind when executing benchmarks (it must be installed).</source>
- <translation>&quot;Valgrind Callgrind&quot; zur Benchmarkausführung benutzen (dazu muss es installiert sein).</translation>
+ <translation>&quot;Valgrind Callgrind&quot; zur Benchmarkausführung verwenden (dazu muss es installiert sein).</translation>
</message>
<message>
<source>Find user-defined locations</source>
@@ -13271,7 +13271,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Parse messages for the following pattern and use it as location information:&lt;pre&gt;file://filepath:line&lt;/pre&gt;where &quot;:line&quot; is optional.&lt;p&gt;Warning: If the patterns are used in code, the location information for debug messages and other messages might improve,at the risk of some incorrect locations and lower performance.</source>
- <translation>Wertet Nachrichten nach den folgenden Mustern aus und benutzt sie als Positionsinformation:&lt;pre&gt;file://dateipfad:zeile&lt;/pre&gt;wobei &quot;:zeile&quot; optional ist.&lt;p&gt;Achtung: Wenn diese Muster im Code benutzt werden, können sich die Positionsinformationen für Debug- und andere Nachrichten verbessern, es besteht aber die Gefahr falscher Positionen und verringerter Leistung.</translation>
+ <translation>Wertet Nachrichten nach den folgenden Mustern aus und verwendet sie als Positionsinformation:&lt;pre&gt;file://dateipfad:zeile&lt;/pre&gt;wobei &quot;:zeile&quot; optional ist.&lt;p&gt;Achtung: Wenn diese Muster im Code verwendet werden, können sich die Positionsinformationen für Debug- und andere Nachrichten verbessern, es besteht aber die Gefahr falscher Positionen und verringerter Leistung.</translation>
</message>
<message>
<source>Callgrind</source>
@@ -13279,7 +13279,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Uses Perf when executing benchmarks (it must be installed).</source>
- <translation>&quot;Perf&quot; zur Benchmarkausführung benutzen (dazu muss es installiert sein).</translation>
+ <translation>&quot;Perf&quot; zur Benchmarkausführung verwenden (dazu muss es installiert sein).</translation>
</message>
<message>
<source>Perf</source>
@@ -13387,7 +13387,7 @@ Weitere Informationen über GTest-Filter finden Sie in der Dokumenation von Goog
</message>
<message>
<source>Run Test Under Cursor</source>
- <translation>Test unter Cursor ausführen</translation>
+ <translation>Test unter Einfügemarke ausführen</translation>
</message>
<message>
<source>&amp;Run Test</source>
@@ -14038,7 +14038,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Use GDB target extended-remote</source>
- <translation>GDB &quot;target extended-remote&quot; benutzen</translation>
+ <translation>GDB &quot;target extended-remote&quot; verwenden</translation>
</message>
<message>
<source>Extended mode:</source>
@@ -14101,13 +14101,13 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
<source>GDB compatible provider engine
(used together with the GDB debuggers).</source>
<translation>GDB-kompatible Provider-Engine
-(wird zusammen mit GDB-Debuggern benutzt).</translation>
+(wird zusammen mit GDB-Debuggern verwendet).</translation>
</message>
<message>
<source>UVSC compatible provider engine
(used together with the KEIL uVision).</source>
<translation>UVSC-kompatible Provider-Engine
-(wird zusammen mit KEIL uVision benutzt).</translation>
+(wird zusammen mit KEIL uVision verwendet).</translation>
</message>
<message>
<source>Name</source>
@@ -14127,7 +14127,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>The following providers were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
- <translation>Die folgenden Provider wurden bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Sie wurden nicht noch einmal konfiguriert.</translation>
+ <translation>Die folgenden Provider wurden bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Sie wurden nicht erneut konfiguriert.</translation>
</message>
<message>
<source>Add</source>
@@ -14199,7 +14199,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Do not use EBlink flash cache.</source>
- <translation>EBlink-Flash-Cache nicht benutzen.</translation>
+ <translation>EBlink-Flash-Cache nicht verwenden.</translation>
</message>
<message>
<source>Disable cache:</source>
@@ -14636,15 +14636,15 @@ Lokale Commits werden nicht zum Master-Branch gepusht, bis ein normaler Commit e
</message>
<message>
<source>User</source>
- <translation>Nutzer</translation>
+ <translation>Benutzer</translation>
</message>
<message>
<source>Username to use by default on commit.</source>
- <translation>Nutzername für Commit.</translation>
+ <translation>Benutzername für Commit.</translation>
</message>
<message>
<source>Default username:</source>
- <translation>Vorgabe für Nutzernamen:</translation>
+ <translation>Vorgabe für Benutzernamen:</translation>
</message>
<message>
<source>Email to use by default on commit.</source>
@@ -15559,7 +15559,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Enter one CMake &lt;a href=&quot;variable&quot;&gt;variable&lt;/a&gt; per line.&lt;br/&gt;To set or change a variable, use -D&amp;lt;variable&amp;gt;:&amp;lt;type&amp;gt;=&amp;lt;value&amp;gt;.&lt;br/&gt;&amp;lt;type&amp;gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.&lt;br/&gt;To unset a variable, use -U&amp;lt;variable&amp;gt;.&lt;br/&gt;</source>
- <translation>Geben Sie eine CMake-&lt;a href=&quot;variable&quot;&gt;Variable&lt;/a&gt; pro Zeile ein.&lt;br/&gt;Um eine Variable zu setzen oder zu ändern, benutzen Sie -D&amp;lt;Variable&amp;gt;:&amp;lt;Typ&amp;gt;=&amp;lt;Wert&amp;gt;.&lt;br/&gt;&amp;lt;Typ&amp;gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.&lt;br/&gt;Um eine Variable zurückzusetzen, benutzen Sie -U&amp;lt;Variable&amp;gt;.&lt;br/&gt;</translation>
+ <translation>Geben Sie eine CMake-&lt;a href=&quot;variable&quot;&gt;Variable&lt;/a&gt; pro Zeile ein.&lt;br/&gt;Um eine Variable zu setzen oder zu ändern, verwenden Sie -D&amp;lt;Variable&amp;gt;:&amp;lt;Typ&amp;gt;=&amp;lt;Wert&amp;gt;.&lt;br/&gt;&amp;lt;Typ&amp;gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.&lt;br/&gt;Um eine Variable zurückzusetzen, verwenden Sie -U&amp;lt;Variable&amp;gt;.&lt;br/&gt;</translation>
</message>
<message>
<source>Re-configure with Initial Parameters</source>
@@ -15967,7 +15967,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Show subfolders inside source group folders</source>
- <translation>Unterverzeichnisse in Sourcegruppen anzeigen</translation>
+ <translation>Unterverzeichnisse in Quelltext-Gruppenverzeichnissen anzeigen</translation>
</message>
<message>
<source>Show advanced options by default</source>
@@ -15975,11 +15975,11 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Use junctions for CMake configuration and build operations</source>
- <translation>Junctions für die CMake-Konfiguration und das Erstellen benutzen</translation>
+ <translation>Junctions für die CMake-Konfiguration und das Erstellen verwenden</translation>
</message>
<message>
<source>Create and use junctions for the source and build directories to overcome issues with long paths on Windows.&lt;br&gt;&lt;br&gt;Junctions are stored under &lt;tt&gt;C:\ProgramData\QtCreator\Links&lt;/tt&gt; (overridable via the &lt;tt&gt;QTC_CMAKE_JUNCTIONS_DIR&lt;/tt&gt; environment variable).&lt;br&gt;&lt;br&gt;With &lt;tt&gt;QTC_CMAKE_JUNCTIONS_HASH_LENGTH&lt;/tt&gt;, you can shorten the MD5 hash key length to a value smaller than the default length value of 32.&lt;br&gt;&lt;br&gt;Junctions are used for CMake configure, build and install operations.</source>
- <translation>Erstellt und benutzt Junctions für die Quell- und Build-Verzeichnisse, um Probleme mit langen Pfaden auf Windows zu umgehen.&lt;br&gt;&lt;br&gt;Junctions werden unter &lt;tt&gt;C:\ProgramData\QtCreator\Links&lt;/tt&gt; gespeichert (überschreibbar mit der Umgebungsvariable &lt;tt&gt;QTC_CMAKE_JUNCTIONS_DIR&lt;/tt&gt;).&lt;br&gt;&lt;br&gt;Sie können mit der Umgebungsvariable &lt;tt&gt;QTC_CMAKE_JUNCTIONS_HASH_LENGTH&lt;/tt&gt; die Länge des MD5-Hashschlüssels auf einen kleineren Wert als die Voreinstellung 32 verkürzen.&lt;br&gt;&lt;br&gt;Junctions werden für das Konfigurieren mit CMake, das Erstellen und die Installation benutzt.</translation>
+ <translation>Erstellt und verwendet Junctions für die Quell- und Build-Verzeichnisse, um Probleme mit langen Pfaden auf Windows zu umgehen.&lt;br&gt;&lt;br&gt;Junctions werden unter &lt;tt&gt;C:\ProgramData\QtCreator\Links&lt;/tt&gt; gespeichert (überschreibbar mit der Umgebungsvariable &lt;tt&gt;QTC_CMAKE_JUNCTIONS_DIR&lt;/tt&gt;).&lt;br&gt;&lt;br&gt;Sie können mit der Umgebungsvariable &lt;tt&gt;QTC_CMAKE_JUNCTIONS_HASH_LENGTH&lt;/tt&gt; die Länge des MD5-Hashschlüssels auf einen kleineren Wert als die Voreinstellung 32 verkürzen.&lt;br&gt;&lt;br&gt;Junctions werden für das Konfigurieren mit CMake, das Erstellen und die Installation verwendet.</translation>
</message>
<message>
<source>General</source>
@@ -16119,7 +16119,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>&lt;Use Default Generator&gt;</source>
- <translation>&lt;Benutze Standardgenerator&gt;</translation>
+ <translation>&lt;Verwende Standardgenerator&gt;</translation>
</message>
<message>
<source>Generator: %1&lt;br&gt;Extra generator: %2</source>
@@ -16147,7 +16147,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Enter one CMake &lt;a href=&quot;variable&quot;&gt;variable&lt;/a&gt; per line.&lt;br/&gt;To set a variable, use -D&amp;lt;variable&amp;gt;:&amp;lt;type&amp;gt;=&amp;lt;value&amp;gt;.&lt;br/&gt;&amp;lt;type&amp;gt; can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.</source>
- <translation>Geben Sie eine CMake-&lt;a href=&quot;variable&quot;&gt;Variable&lt;/a&gt; pro Zeile ein.&lt;br/&gt;Um eine Variable zu setzen, benutzen Sie -D&amp;lt;Variable&amp;gt;:&amp;lt;Typ&amp;gt;=&amp;lt;Wert&amp;gt;.&lt;br/&gt;&amp;lt;Typ&amp;gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.</translation>
+ <translation>Geben Sie eine CMake-&lt;a href=&quot;variable&quot;&gt;Variable&lt;/a&gt; pro Zeile ein.&lt;br/&gt;Um eine Variable zu setzen, verwenden Sie -D&amp;lt;Variable&amp;gt;:&amp;lt;Typ&amp;gt;=&amp;lt;Wert&amp;gt;.&lt;br/&gt;&amp;lt;Typ&amp;gt; kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.</translation>
</message>
<message>
<source>CMake Configuration</source>
@@ -16942,8 +16942,8 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der
<translation>Aktuelle ClangFormat-Version: %1.</translation>
</message>
<message>
- <source>Warning: </source>
- <translation>Warnung: </translation>
+ <source>Warning:</source>
+ <translation>Warnung:</translation>
</message>
<message>
<source>The current ClangFormat (C++ &gt; Code Style &gt; ClangFormat) settings are not valid. Are you sure you want to apply them?</source>
@@ -16981,7 +16981,7 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
</message>
<message>
<source>Use built-in indenter</source>
- <translation>Integriertes Codemodell für das Einrücken benutzen</translation>
+ <translation>Integriertes Codemodell für das Einrücken verwenden</translation>
</message>
<message>
<source>Use global settings</source>
@@ -16989,7 +16989,7 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
</message>
<message>
<source>Please note that the current project includes a .clang-format file, which will be used for code indenting and formatting.</source>
- <translation>Beachten Sie, dass das aktuelle Projekt eine .clang-format-Datei enthält, welche für das Einrücken und die Formatierung von Code benutzt werden wird.</translation>
+ <translation>Beachten Sie, dass das aktuelle Projekt eine .clang-format-Datei enthält, welche für das Einrücken und die Formatierung von Code verwendet werden wird.</translation>
</message>
<message>
<source>ClangFormat settings:</source>
@@ -17009,7 +17009,7 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
</message>
<message>
<source>When this option is enabled, ClangFormat will use a user-specified configuration from the widget below, instead of the project .clang-format file. You can customize the formatting options for your code by adjusting the settings in the widget. Note that any changes made there will only affect the current configuration, and will not modify the project .clang-format file.</source>
- <translation>Wenn diese Einstellung aktiviert ist, wird statt der .clang-format-Datei des Projekts die benutzerdefinierte Einstellung unten benutzt. Beachten Sie, dass die unten durchgeführten Einstellungen nur die aktuelle Konfiguration beeinflussen und die .clang-format-Datei des Projekts nicht verändert wird.</translation>
+ <translation>Wenn diese Einstellung aktiviert ist, wird statt der .clang-format-Datei des Projekts die benutzerdefinierte Einstellung unten verwendet. Beachten Sie, dass die unten durchgeführten Einstellungen nur die aktuelle Konfiguration beeinflussen und die .clang-format-Datei des Projekts nicht verändert wird.</translation>
</message>
<message>
<source>ClangFormat</source>
@@ -17266,7 +17266,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Clang-Tidy and Clazy use a customized Clang executable from the Clang project to search for diagnostics.</source>
- <translation>Clang-Tidy und Clazy benutzen eine angepasste Version der Anwendung Clang vom Clang-Projekt, um nach Problemen zu suchen.</translation>
+ <translation>Clang-Tidy und Clazy verwenden eine angepasste Version der Anwendung Clang vom Clang-Projekt, um nach Problemen zu suchen.</translation>
</message>
<message>
<source>Release</source>
@@ -17278,11 +17278,11 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>You are trying to run the tool &quot;%1&quot; on an application in %2 mode. The tool is designed to be used in Debug mode since enabled assertions can reduce the number of false positives.</source>
- <translation>Sie versuchen das Werkzeug &quot;%1&quot; auf eine Applikation im %2-Modus anzuwenden. Das Werkzeug sollte im Debug-Modus benutzt werden, da eingeschaltete Assertions die Zahl der False-Positives verringern können.</translation>
+ <translation>Sie versuchen das Werkzeug &quot;%1&quot; auf eine Applikation im %2-Modus anzuwenden. Das Werkzeug sollte im Debug-Modus verwendet werden, da eingeschaltete Assertions die Zahl der False-Positives verringern können.</translation>
</message>
<message>
<source>Do you want to continue and run the tool in %1 mode?</source>
- <translation>Wollen Sie fortfahren und das Werkzeug im %1-Modus benutzen?</translation>
+ <translation>Wollen Sie fortfahren und das Werkzeug im %1-Modus verwenden?</translation>
</message>
<message>
<source>Analyze Project with %1...</source>
@@ -17338,7 +17338,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Failed to start the analyzer.</source>
- <translation>Das Analyse-Werkzeug konnte nicht gestartet werden.</translation>
+ <translation>Das Analysewerkzeug konnte nicht gestartet werden.</translation>
</message>
<message>
<source>All Files</source>
@@ -18261,11 +18261,11 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>&amp;Username:</source>
- <translation>&amp;Nutzername:</translation>
+ <translation>&amp;Benutzername:</translation>
</message>
<message>
<source>&lt;Username&gt;</source>
- <translation>&lt;Nutzername&gt;</translation>
+ <translation>&lt;Benutzername&gt;</translation>
</message>
<message>
<source>&amp;Description:</source>
@@ -18293,7 +18293,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Username:</source>
- <translation>Nutzername:</translation>
+ <translation>Benutzername:</translation>
</message>
<message>
<source>Default protocol:</source>
@@ -18331,7 +18331,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Reset used libraries</source>
- <translation>Benutzte Bibliotheken zurücksetzen</translation>
+ <translation>Verwendete Bibliotheken zurücksetzen</translation>
</message>
<message>
<source>No libraries selected</source>
@@ -18371,7 +18371,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>No source code added yet. Add some using the button below.</source>
- <translation>Es wurde noch kein Quelltext hinzugefügt. Benutzen Sie die Schaltfläche unten, um einen Code-Editor hinzuzufügen.</translation>
+ <translation>Es wurde noch kein Quelltext hinzugefügt. Verwenden Sie die Schaltfläche unten, um einen Code-Editor hinzuzufügen.</translation>
</message>
<message>
<source>Add Source</source>
@@ -18447,7 +18447,7 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>URL of the Compiler Explorer instance to use.</source>
- <translation>URL der zu benutzenden Compiler Explorer-Instanz.</translation>
+ <translation>URL der zu verwendenden Compiler Explorer-Instanz.</translation>
</message>
</context>
<context>
@@ -18532,7 +18532,7 @@ Ansonsten müssen Sie den Pfad zur Datei %2 aus dem Copilot-Plugin für Neovim a
</message>
<message>
<source>Request Copilot suggestion at the current editor&apos;s cursor position.</source>
- <translation>Fordert Vorschläge für die Cursorposition des aktuellen Editors von Copilot an.</translation>
+ <translation>Fordert Vorschläge für die Einfügemarke des aktuellen Editors von Copilot an.</translation>
</message>
<message>
<source>Show Next Copilot Suggestion</source>
@@ -18580,7 +18580,7 @@ Ansonsten müssen Sie den Pfad zur Datei %2 aus dem Copilot-Plugin für Neovim a
</message>
<message>
<source>Do not ask again. This will disable Copilot for now.</source>
- <translation>Nicht noch einmal nachfragen. Dies deaktiviert Copilot.</translation>
+ <translation>Nicht erneut nachfragen. Dies deaktiviert Copilot.</translation>
</message>
<message>
<source>Enables the Copilot integration.</source>
@@ -18710,7 +18710,7 @@ Ansonsten müssen Sie den Pfad zur Datei %2 aus dem Copilot-Plugin für Neovim a
</message>
<message>
<source>Automatically request suggestions for the current text cursor position after changes to the document.</source>
- <translation>Fordert Vorschläge für die aktuelle Cursorposition nach Änderungen am Dokument automatisch an.</translation>
+ <translation>Fordert Vorschläge für die aktuelle Einfügemarke nach Änderungen am Dokument automatisch an.</translation>
</message>
</context>
<context>
@@ -18845,7 +18845,7 @@ Trotzdem fortfahren?</translation>
</message>
<message>
<source>Edit</source>
- <translation>Editieren</translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
<source>&lt;System Language&gt;</source>
@@ -18866,8 +18866,8 @@ Trotzdem fortfahren?</translation>
<message>
<source>Provide cursors for resizing views.
If the system cursors for resizing views are not displayed properly, you can use the cursors provided by %1.</source>
- <translation>Benutzt separate Mauszeiger für das Verändern der Größe von Ansichten.
-Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrekt dargestellt werden, können von %1 bereitgestellte Zeiger benutzt werden.</translation>
+ <translation>Verwendet separate Mauszeiger für das Verändern der Größe von Ansichten.
+Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrekt dargestellt werden, können von %1 bereitgestellte Zeiger verwendet werden.</translation>
</message>
<message>
<source>Toolbar style:</source>
@@ -18961,7 +18961,7 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
</message>
<message>
<source>Re-enable warnings that were suppressed by selecting &quot;Do Not Show Again&quot; (for example, missing highlighter).</source>
- <translation>Alle Warnungen wieder aktivieren, die durch &quot;Nicht noch einmal anzeigen&quot; unterdrückt wurden (zum Beispiel fehlende Syntaxhervorhebung).</translation>
+ <translation>Alle Warnungen wieder aktivieren, die durch &quot;Nicht erneut anzeigen&quot; unterdrückt wurden (zum Beispiel fehlende Syntaxhervorhebung).</translation>
</message>
<message>
<source>Theme:</source>
@@ -19125,7 +19125,7 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
</message>
<message>
<source>&lt;p&gt;Qt Creator developers can be reached at the Qt Creator mailing list:&lt;/p&gt;%1&lt;p&gt;or the #qt-creator channel on Libera.Chat IRC:&lt;/p&gt;%2&lt;p&gt;Our bug tracker is located at %3.&lt;/p&gt;&lt;p&gt;Please use %4 for bigger chunks of text.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Sie können die Qt Creator-Entwickler auf dem E-Mail-Verteiler&lt;/p&gt;%1&lt;p&gt;oder dem IRC Kanal #qt-creator auf Libera.Chat&lt;/p&gt;%2&lt;p&gt;erreichen. Unseren Bugtracker finden Sie unter %3.&lt;/p&gt;&lt;p&gt;Bitte benutzen Sie %4 für längere Texte.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Sie können die Qt Creator-Entwickler auf dem E-Mail-Verteiler&lt;/p&gt;%1&lt;p&gt;oder dem IRC Kanal #qt-creator auf Libera.Chat&lt;/p&gt;%2&lt;p&gt;erreichen. Unseren Bugtracker finden Sie unter %3.&lt;/p&gt;&lt;p&gt;Bitte verwenden Sie %4 für längere Texte.&lt;/p&gt;</translation>
</message>
<message>
<source>Minimize</source>
@@ -20261,7 +20261,7 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
</message>
<message>
<source>Locates files from a custom set of directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet Dateien aus vom Benutzer gewählten Pfaden. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet Dateien aus vom Benutzer gewählten Pfaden. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>Add...</source>
@@ -20350,7 +20350,7 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
</message>
<message>
<source>Use re&amp;gular expressions</source>
- <translation>Benutze &amp;reguläre Ausdrücke</translation>
+ <translation>Verwende &amp;reguläre Ausdrücke</translation>
</message>
<message>
<source>Sco&amp;pe:</source>
@@ -20588,7 +20588,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
</message>
<message>
<source>&amp;Search Again</source>
- <translation>Noch einmal &amp;suchen</translation>
+ <translation>Erneut &amp;suchen</translation>
</message>
<message>
<source>Repla&amp;ce with:</source>
@@ -20654,7 +20654,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
</message>
<message>
<source>Filter Results</source>
- <translation>Resultate filtern</translation>
+ <translation>Ergebnisse filtern</translation>
</message>
<message>
<source>%1 %2</source>
@@ -20736,7 +20736,7 @@ Möchten Sie es beenden?</translation>
</message>
<message>
<source>Include the filter when not using a prefix for searches.</source>
- <translation>Diesen Filter einschließen, wenn kein Präfix benutzt wird.</translation>
+ <translation>Diesen Filter einschließen, wenn kein Präfix verwendet wird.</translation>
</message>
<message>
<source>Prefix:</source>
@@ -20838,7 +20838,7 @@ Möchten Sie es beenden?</translation>
</message>
<message>
<source>Do not ask again.</source>
- <translation>Nicht noch einmal nachfragen.</translation>
+ <translation>Nicht erneut nachfragen.</translation>
</message>
<message>
<source>No themes found in installation.</source>
@@ -20970,7 +20970,7 @@ Sie werden wahrscheinlich auf weitere Probleme mit dieser Instanz von %3 stoßen
</message>
<message>
<source>%1 uses Google Crashpad for collecting crashes and sending them to our backend for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.</source>
- <translation>%1 nutzt Google Crashpad, um Absturzberichte zu sammeln und diese zur Verarbeitung an unsere Server zu senden. Crashpad kann beliebige Inhalte des Speichers des abgestürzten Prozesses erfassen. Dies beinhaltet persönliche Daten, URLs und welche Inhalte auch immer der Nutzer %1 anvertraut hat. Die gesammelten Absturzberichte werden allerdings nur zum Zweck der Fehlerbehebung genutzt.</translation>
+ <translation>%1 nutzt Google Crashpad, um Absturzberichte zu sammeln und diese zur Verarbeitung an unsere Server zu senden. Crashpad kann beliebige Inhalte des Speichers des abgestürzten Prozesses erfassen. Dies beinhaltet persönliche Daten, URLs und welche Inhalte auch immer der Benutzer %1 anvertraut hat. Die gesammelten Absturzberichte werden allerdings nur zum Zweck der Fehlerbehebung genutzt.</translation>
</message>
<message>
<source>More information:</source>
@@ -21599,7 +21599,7 @@ provided they were unmodified before the refactoring.</source>
</message>
<message>
<source>Locates files from a global file system index (Spotlight, Locate, Everything). Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet Dateien aus einem globalen Dateisystemindex (Spotlight, Locate, Everything). Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet Dateien aus einem globalen Dateisystemindex (Spotlight, Locate, Everything). Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>Sort results</source>
@@ -21756,11 +21756,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>Use &quot;Cmd&quot;, &quot;Opt&quot;, &quot;Ctrl&quot;, and &quot;Shift&quot; for modifier keys. Use &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot;, and so on, for special keys. Combine individual keys with &quot;+&quot;, and combine multiple shortcuts to a shortcut sequence with &quot;,&quot;. For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter &quot;Ctrl+Shift+Escape,A&quot;.</source>
- <translation>Benutzen Sie &quot;Cmd&quot;, &quot;Opt&quot;, &quot;Ctrl&quot;, und &quot;Shift&quot; für Hilfstasten. Benutzen Sie &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot; und so weiter für Sondertasten. Kombinieren Sie einzelne Tasten mit &quot;+&quot; und kombinieren Sie mehrere Tastenkombinationen mit &quot;,&quot; zu einer Tastenfolge. Wenn der Benutzer etwa die Strg- und Umschalttasten gedrückt halten muss, während er Escape drückt, um danach alle Tasten zu lösen und A zu drücken, geben Sie &quot;Ctrl+Shift+Escape,A&quot; ein.</translation>
+ <translation>Verwenden Sie &quot;Cmd&quot;, &quot;Opt&quot;, &quot;Ctrl&quot;, und &quot;Shift&quot; für Hilfstasten. Verwenden Sie &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot; und so weiter für Sondertasten. Kombinieren Sie einzelne Tasten mit &quot;+&quot; und kombinieren Sie mehrere Tastenkombinationen mit &quot;,&quot; zu einer Tastenfolge. Wenn der Benutzer etwa die Strg- und Umschalttasten gedrückt halten muss, während er Escape drückt, um danach alle Tasten zu lösen und A zu drücken, geben Sie &quot;Ctrl+Shift+Escape,A&quot; ein.</translation>
</message>
<message>
<source>Use &quot;Ctrl&quot;, &quot;Alt&quot;, &quot;Meta&quot;, and &quot;Shift&quot; for modifier keys. Use &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot;, and so on, for special keys. Combine individual keys with &quot;+&quot;, and combine multiple shortcuts to a shortcut sequence with &quot;,&quot;. For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter &quot;Ctrl+Shift+Escape,A&quot;.</source>
- <translation>Benutzen Sie &quot;Ctrl&quot;, &quot;Alt&quot;, &quot;Meta&quot;, und &quot;Shift&quot; für Hilfstasten. Benutzen Sie &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot; und so weiter für Sondertasten. Kombinieren Sie einzelne Tasten mit &quot;+&quot; und kombinieren Sie mehrere Tastenkombinationen mit &quot;,&quot; zu einer Tastenfolge. Wenn der Benutzer etwa die Strg- und Umschalttasten gedrückt halten muss, während er Escape drückt, um danach alle Tasten zu lösen und A zu drücken, geben Sie &quot;Ctrl+Shift+Escape,A&quot; ein.</translation>
+ <translation>Verwenden Sie &quot;Ctrl&quot;, &quot;Alt&quot;, &quot;Meta&quot;, und &quot;Shift&quot; für Hilfstasten. Verwenden Sie &quot;Escape&quot;, &quot;Backspace&quot;, &quot;Delete&quot;, &quot;Insert&quot;, &quot;Home&quot; und so weiter für Sondertasten. Kombinieren Sie einzelne Tasten mit &quot;+&quot; und kombinieren Sie mehrere Tastenkombinationen mit &quot;,&quot; zu einer Tastenfolge. Wenn der Benutzer etwa die Strg- und Umschalttasten gedrückt halten muss, während er Escape drückt, um danach alle Tasten zu lösen und A zu drücken, geben Sie &quot;Ctrl+Shift+Escape,A&quot; ein.</translation>
</message>
<message>
<source>Enter key sequence as text</source>
@@ -21824,7 +21824,7 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>The plugin will be available to all compatible %1 installations, but only for the current user.</source>
- <translation>Das Plugin wird für alle kompatiblen Installationen von %1 verfügbar sein, aber nur für den aktuellen Nutzer.</translation>
+ <translation>Das Plugin wird für alle kompatiblen Installationen von %1 verfügbar sein, aber nur für den aktuellen Benutzer.</translation>
</message>
<message>
<source>%1 installation</source>
@@ -21832,7 +21832,7 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>The plugin will be available only to this %1 installation, but for all users that can access it.</source>
- <translation>Das Plugin wird nur für diese Installation von %1 verfügbar sein, aber für alle Nutzer, die diese Ausführen können.</translation>
+ <translation>Das Plugin wird nur für diese Installation von %1 verfügbar sein, aber für alle Benutzer, die diese Ausführen können.</translation>
</message>
<message>
<source>Summary</source>
@@ -22828,7 +22828,7 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>Convert to Stack Variable</source>
- <translation>In Stack-Variable umwandeln</translation>
+ <translation>In Stackvariable umwandeln</translation>
</message>
<message>
<source>Convert to Pointer</source>
@@ -23054,7 +23054,7 @@ ausgerichtet werden würden</translation>
int (*pa)[2] = ...;
&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Dies bezieht sich nicht auf die Stern- und Referenzsymbole in Zeigern auf / Referenzen zu Funktionen und Feldern, zum Beispiel:
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Dies bezieht sich nicht auf die Stern- und Referenzsymbole in Zeigern auf / Referenzen zu Funktionen und Arrays, zum Beispiel:
&lt;pre&gt; int (&amp;rf)() = ...;
int (*pf)() = ...;
@@ -23297,7 +23297,7 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header-
</message>
<message>
<source>Use type &quot;auto&quot; when creating new variables</source>
- <translation>Typ &quot;auto&quot; beim Erstellen von neuen Variablen benutzen</translation>
+ <translation>Typ &quot;auto&quot; beim Erstellen von neuen Variablen verwenden</translation>
</message>
<message>
<source>Custom Getter Setter Templates</source>
@@ -23582,11 +23582,11 @@ z.B. name = &quot;m_test_foo_&quot;:
</message>
<message>
<source>Use Built-in Only</source>
- <translation>Nur integriertes Backend benutzen</translation>
+ <translation>Nur integriertes Backend verwenden</translation>
</message>
<message>
<source>Use Clangd Only</source>
- <translation>Nur Clangd benutzen</translation>
+ <translation>Nur Clangd verwenden</translation>
</message>
<message>
<source>Try Both</source>
@@ -23630,11 +23630,11 @@ z.B. name = &quot;m_test_foo_&quot;:
</message>
<message>
<source>Use built-in preprocessor to show pre-processed files</source>
- <translation>Den integrierten Präprozessor zum Anzeigen von vorverarbeiteten Dateien benutzen</translation>
+ <translation>Den integrierten Präprozessor zum Anzeigen von vorverarbeiteten Dateien verwenden</translation>
</message>
<message>
<source>Uncheck this to invoke the actual compiler to show a pre-processed source file in the editor.</source>
- <translation>Wählen Sie dies ab, um den Compiler zum Anzeigen von vorverarbeiteten Dateien zu benutzen.</translation>
+ <translation>Wählen Sie dies ab, um den Compiler zum Anzeigen von vorverarbeiteten Dateien zu verwenden.</translation>
</message>
<message>
<source>Code Model</source>
@@ -23642,19 +23642,19 @@ z.B. name = &quot;m_test_foo_&quot;:
</message>
<message>
<source>&lt;p&gt;If background indexing is enabled, global symbol searches will yield more accurate results, at the cost of additional CPU load when the project is first opened. The indexing result is persisted in the project&apos;s build directory. If you disable background indexing, a faster, but less accurate, built-in indexer is used instead. The thread priority for building the background index can be adjusted since clangd 15.&lt;/p&gt;&lt;p&gt;Background Priority: Minimum priority, runs on idle CPUs. May leave &apos;performance&apos; cores unused.&lt;/p&gt;&lt;p&gt;Normal Priority: Reduced priority compared to interactive work.&lt;/p&gt;&lt;p&gt;Low Priority: Same priority as other clangd work.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Wenn sie das globale Indizieren aktivieren, liefert die globale Symbolsuche genauere Resultate, es erhöht aber die CPU-Last beim ersten Öffnen von Projekten. Das Resultat der Indizierung wird im Build-Verzeichnis des Projekts gespeichert. Wenn sie das globale Indizieren deaktivieren, wird stattdessen ein schnellerer, aber weniger genauer, integrierter Indexer benutzt. Seit Clangd 15 können Sie die Priorität für die Indizierungs-Threads anpassen.&lt;/p&gt;&lt;p&gt;Hintergrund-Priorität: Niedrigste Priorität, läuft nur auf leerlaufenden CPUs. Kann &quot;Performance&quot;-Kerne ungenutzt lassen.&lt;/p&gt;&lt;p&gt;Normale Priorität: Geringere Priorität im Vergleich zu interaktiven Aktivitäten.&lt;/p&gt;&lt;p&gt;Niedrige Priorität: Dieselbe Priorität wie andere Clangd-Aktivitäten.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Wenn Sie das globale Indizieren aktivieren, liefert die globale Symbolsuche genauere Ergebnisse, es erhöht aber die CPU-Last beim ersten Öffnen von Projekten. Das Ergebnis der Indizierung wird im Build-Verzeichnis des Projekts gespeichert. Wenn Sie das globale Indizieren deaktivieren, wird stattdessen ein schnellerer, aber weniger genauer, integrierter Indexer verwendet. Seit Clangd 15 können Sie die Priorität für die Indizierungs-Threads anpassen.&lt;/p&gt;&lt;p&gt;Hintergrund-Priorität: Niedrigste Priorität, läuft nur auf leerlaufenden CPUs. Kann &quot;Performance&quot;-Kerne ungenutzt lassen.&lt;/p&gt;&lt;p&gt;Normale Priorität: Geringere Priorität im Vergleich zu interaktiven Aktivitäten.&lt;/p&gt;&lt;p&gt;Niedrige Priorität: Dieselbe Priorität wie andere Clangd-Aktivitäten.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;The C/C++ backend to use for switching between header and source files.&lt;/p&gt;&lt;p&gt;While the clangd implementation has more capabilities than the built-in code model, it tends to find false positives.&lt;/p&gt;&lt;p&gt;When &quot;Try Both&quot; is selected, clangd is used only if the built-in variant does not find anything.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Bestimmt, welches C/C++-Backend zum Wechseln zwischen Header- und Quelldatei benutzt wird.&lt;/p&gt;&lt;p&gt;Die Clangd-Implementation hat mehr Fähigkeiten, aber auch einige Fehler, die nicht in der integrierten Variante vorhanden sind.&lt;/p&gt;&lt;p&gt;Wenn &quot;Beide versuchen&quot; ausgewählt ist, wird Clangd nur benutzt, wenn die integrierte Variant nichts findet.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Bestimmt, welches C/C++-Backend zum Wechseln zwischen Header- und Quelldatei verwendet wird.&lt;/p&gt;&lt;p&gt;Die Clangd-Implementation hat mehr Fähigkeiten, aber auch einige Fehler, die nicht in der integrierten Variante vorhanden sind.&lt;/p&gt;&lt;p&gt;Wenn &quot;Beide versuchen&quot; ausgewählt ist, wird Clangd nur verwendet, wenn die integrierte Variant nichts findet.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;Which model clangd should use to rank possible completions.&lt;/p&gt;&lt;p&gt;This determines the order of candidates in the combo box when doing code completion.&lt;/p&gt;&lt;p&gt;The &quot;%1&quot; model used by default results from (pre-trained) machine learning and provides superior results on average.&lt;/p&gt;&lt;p&gt;If you feel that its suggestions stray too much from your expectations for your code base, you can try switching to the hand-crafted &quot;%2&quot; model.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Das Modell, das Clangd für die Rangfolge der möglichen Vervollständigungen benutzen soll.&lt;/p&gt;&lt;p&gt;Dies bestimmt die Reihenfolge der Kandidaten im Drop-Down-Menü der Code-Vervollständigung.&lt;/p&gt;&lt;p&gt;Das voreingestellte Modell &quot;%1&quot; wurde durch maschinelles Lernen trainiert und bietet im Schnitt die besten Ergebnisse.&lt;/p&gt;&lt;p&gt;Falls dies für Ihren Code zu sehr von Ihren Erwartungen abweicht, können Sie auf das manuell erstellte Modell &quot;%2&quot; umstellen.&lt;p&gt;</translation>
+ <translation>&lt;p&gt;Das Modell, das Clangd für die Rangfolge der möglichen Vervollständigungen verwenden soll.&lt;/p&gt;&lt;p&gt;Dies bestimmt die Reihenfolge der Kandidaten im Drop-Down-Menü der Code-Vervollständigung.&lt;/p&gt;&lt;p&gt;Das voreingestellte Modell &quot;%1&quot; wurde durch maschinelles Lernen trainiert und bietet im Schnitt die besten Ergebnisse.&lt;/p&gt;&lt;p&gt;Falls dies für Ihren Code zu sehr von Ihren Erwartungen abweicht, können Sie auf das manuell erstellte Modell &quot;%2&quot; umstellen.&lt;p&gt;</translation>
</message>
<message>
<source>Number of worker threads used by clangd. Background indexing also uses this many worker threads.</source>
- <translation>Anzahl der Threads, die von Clangd benutzt werden. Die globale Indizierung nutzt auch diese Anzahl Threads.</translation>
+ <translation>Anzahl der Threads, die von Clangd verwendet werden. Die globale Indizierung nutzt auch diese Anzahl Threads.</translation>
</message>
<message>
<source>Controls whether clangd may insert header files as part of symbol completion.</source>
@@ -23664,7 +23664,7 @@ z.B. name = &quot;m_test_foo_&quot;:
<source>Defines the amount of time %1 waits before sending document changes to the server.
If the document changes again while waiting, this timeout resets.</source>
<translation>Bestimmt die Zeit, die %1 vor dem Senden von Dokumentänderungen an den Server wartet.
-Falls sich das Dokument innerhalb dieser Zeit wieder ändert, wird erneut die volle Zeit gewartet.</translation>
+Falls sich das Dokument innerhalb dieser Zeit erneut ändert, wird nochmal die volle Zeit gewartet.</translation>
</message>
<message>
<source>Files greater than this will not be opened as documents in clangd.
@@ -23674,11 +23674,11 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun
</message>
<message>
<source>The maximum number of completion results returned by clangd.</source>
- <translation>Die maximale Anzahl Resultate die von Clangd für die Code-Vervollständigung zurück gegeben werden.</translation>
+ <translation>Die maximale Anzahl Ergebnisse, die von Clangd für die Code-Vervollständigung zurückgegeben werden.</translation>
</message>
<message>
<source>Use clangd</source>
- <translation>Clangd benutzen</translation>
+ <translation>Clangd verwenden</translation>
</message>
<message>
<source>Insert header files on completion</source>
@@ -23694,7 +23694,7 @@ Das integrierte Codemodell übernimmt Syntaxhervorhebung, Code-Vervollständigun
</message>
<message>
<source>Completion results:</source>
- <translation>Anzahl der Resultate der Code-Vervollständigung:</translation>
+ <translation>Anzahl der Ergebnisse der Code-Vervollständigung:</translation>
</message>
<message>
<source>No limit</source>
@@ -23973,7 +23973,7 @@ Ziehen Sie Eintrage mit der Maus, um die Reihenfolge der Parameter zu ändern.</
</message>
<message>
<source>Quick Fix settings are saved in a file. Existing settings file &quot;%1&quot; found. Should this file be used or a new one be created?</source>
- <translation>Einstellungen für Quick Fixes werden in einer Datei gespeichert. Es wurde eine existierende Einstellungs-Datei &quot;%1&quot; gefunden. Soll diese Datei benutzt, oder eine neue Datei erstellt werden?</translation>
+ <translation>Einstellungen für Quick Fixes werden in einer Datei gespeichert. Es wurde eine existierende Einstellungs-Datei &quot;%1&quot; gefunden. Soll diese Datei verwendet oder eine neue Datei erstellt werden?</translation>
</message>
<message>
<source>Switch Back to Global Settings</source>
@@ -23981,7 +23981,7 @@ Ziehen Sie Eintrage mit der Maus, um die Reihenfolge der Parameter zu ändern.</
</message>
<message>
<source>Use Existing</source>
- <translation>Existierende benutzen</translation>
+ <translation>Existierende verwenden</translation>
</message>
<message>
<source>Create New</source>
@@ -23989,7 +23989,7 @@ Ziehen Sie Eintrage mit der Maus, um die Reihenfolge der Parameter zu ändern.</
</message>
<message>
<source>Custom settings are saved in a file. If you use the global settings, you can delete that file.</source>
- <translation>Benutzerdefinierte Einstellungen werden in einer Datei gespeichert. Wenn Sie die globalen Einstellungen benutzen, können Sie diese Datei löschen.</translation>
+ <translation>Benutzerdefinierte Einstellungen werden in einer Datei gespeichert. Wenn Sie die globalen Einstellungen verwenden, können Sie diese Datei löschen.</translation>
</message>
<message>
<source>Delete Custom Settings File</source>
@@ -24066,7 +24066,7 @@ Flags: %3</translation>
</message>
<message>
<source>Locates files that are included by C++ files of any open project. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet alle Dateien die von allen C++-Dateien aller Projekte eingebunden werden. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet alle Dateien die von allen C++-Dateien aller Projekte eingebunden werden. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>collecting overrides...</source>
@@ -24145,7 +24145,7 @@ Flags: %3</translation>
</message>
<message>
<source>Can find missing includes but makes checking slower. Use only when needed.</source>
- <translation>Kann fehlende Includes finden, verlangsamt aber die Prüfung. Benutzen Sie dies nur, wenn es nötig ist.</translation>
+ <translation>Kann fehlende Includes finden, verlangsamt aber die Prüfung. Verwenden Sie dies nur, wenn es nötig ist.</translation>
</message>
<message>
<source>Like C++ standard and language.</source>
@@ -24232,7 +24232,7 @@ Flags: %3</translation>
</message>
<message>
<source>Stack Level %1</source>
- <translation>Stack-Level %1</translation>
+ <translation>Stacklevel %1</translation>
</message>
<message>
<source>Value</source>
@@ -24353,7 +24353,7 @@ Flags: %3</translation>
<message>
<source>The trace contains threads with stack depth &gt; 512.
Do you want to display them anyway?</source>
- <translation>Die Trace-Daten enthalten Threads mit einer Stack-Tiefe größer als 512.
+ <translation>Die Trace-Daten enthalten Threads mit einer Stacktiefe größer als 512.
Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
@@ -24920,7 +24920,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Configure Symbol paths that are used to locate debug symbol files.</source>
- <translation>Symbolpfade konfigurieren, die benutzt werden, um Debug-Symboldateien zu finden.</translation>
+ <translation>Symbolpfade konfigurieren, die verwendet werden, um Debug-Symboldateien zu finden.</translation>
</message>
<message>
<source>Log Time Stamps</source>
@@ -24980,7 +24980,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Displays the objectName property of QObject based items. Note that this can negatively impact debugger performance even if no QObjects are present.</source>
- <translation>Zeigt die objectName-Eigenschaft von QObject basierten Elementen an. Dies kann die Debugger-Geschwindigkeit verschlechtern, selbst wenn keine QObjects benutzt werden.</translation>
+ <translation>Zeigt die objectName-Eigenschaft von QObject basierten Elementen an. Dies kann die Debugger-Geschwindigkeit verschlechtern, selbst wenn keine QObjects verwendet werden.</translation>
</message>
<message>
<source>Sort Members of Classes and Structs Alphabetically</source>
@@ -24992,7 +24992,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Use Debugging Helpers</source>
- <translation>Ausgabe-Hilfsbibliothek benutzen</translation>
+ <translation>Ausgabe-Hilfsbibliothek verwenden</translation>
</message>
<message>
<source>Use code model</source>
@@ -25000,7 +25000,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Selecting this causes the C++ Code Model being asked for variable scope information. This might result in slightly faster debugger operation but may fail for optimized code.</source>
- <translation>Benutzt das Codemodell, um Informationen bezüglich des Gültigkeitsbereiches von Variablen zu erhalten. Dies kann eine etwas schnellere Anzeige der Werte bewirken, aber bei optimiertem Code auch fehlschlagen.</translation>
+ <translation>Verwendet das Codemodell, um Informationen bezüglich des Gültigkeitsbereiches von Variablen zu erhalten. Dies kann eine etwas schnellere Anzeige der Werte bewirken, aber bei optimiertem Code auch fehlschlagen.</translation>
</message>
<message>
<source>Displays names of QThread based threads.</source>
@@ -25060,7 +25060,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Use Tooltips in Stack View when Debugging</source>
- <translation>Tooltips für Stack-Anzeige beim Debuggen</translation>
+ <translation>Tooltips für Stackanzeige beim Debuggen</translation>
</message>
<message>
<source>Skip Known Frames</source>
@@ -25084,7 +25084,7 @@ Möchten Sie die Daten trotzdem anzeigen?</translation>
</message>
<message>
<source>Use tooltips in main editor when debugging</source>
- <translation>Tooltips im Haupt-Editor beim Debuggen benutzen</translation>
+ <translation>Tooltips im Haupt-Editor beim Debuggen verwenden</translation>
</message>
<message>
<source>Configure Debugger...</source>
@@ -25198,7 +25198,7 @@ Sie haben die Wahl zu warten oder das Debuggen abzubrechen.</numerusform>
</message>
<message>
<source>Retrieving data for stack view thread %1...</source>
- <translation>Daten der Stack-Anzeige für Thread %1 werden empfangen...</translation>
+ <translation>Daten der Stackanzeige für Thread %1 werden empfangen...</translation>
</message>
<message>
<source>Application started.</source>
@@ -25298,7 +25298,7 @@ Sie haben die Wahl zu warten oder das Debuggen abzubrechen.</numerusform>
</message>
<message>
<source>Retrieving data for stack view...</source>
- <translation>Daten der Stack-Anzeige werden empfangen...</translation>
+ <translation>Daten der Stackanzeige werden empfangen...</translation>
</message>
<message>
<source>The gdb process failed to start.</source>
@@ -25524,12 +25524,12 @@ was generated. In such situations the breakpoint is shifted to the
next source code line for which code was actually generated.
This option reflects such temporary change by moving the breakpoint
markers in the source code editor.</source>
- <translation>Nicht alle Quellcode-Zeilen bewirken die Erzeugung von ausführbarem Code. Wenn man dort einen Haltepunkt setzt, verhält er sich so, als ob er auf die nächste Zeile gesetzt worden wäre. Das Aktivieren der Einstellung &apos;Positionen der Haltepunkte korrigieren&apos; bewirkt, dass der Haltepunkt-Marker in so einem Fall auf die Stelle des resultierenden Haltepunkts verschoben wird.</translation>
+ <translation>Nicht alle Quelltext-Zeilen bewirken die Erzeugung von ausführbarem Code. Wenn man dort einen Haltepunkt setzt, verhält er sich so, als ob er auf die nächste Zeile gesetzt worden wäre. Das Aktivieren der Einstellung &apos;Positionen der Haltepunkte korrigieren&apos; bewirkt, dass der Haltepunkt-Marker in so einem Fall auf die Stelle des resultierenden Haltepunkts verschoben wird.</translation>
</message>
<message>
<source>Allows or inhibits reading the user&apos;s default
.gdbinit file on debugger startup.</source>
- <translation>Gestattet oder unterdrückt das Lesen der Vorgabe-.gdbinit-Datei des Nutzers beim Starten des Debuggers.</translation>
+ <translation>Gestattet oder unterdrückt das Lesen der Vorgabe-.gdbinit-Datei des Benutzers beim Starten des Debuggers.</translation>
</message>
<message>
<source>Load system GDB pretty printers</source>
@@ -25561,7 +25561,7 @@ markers in the source code editor.</source>
</message>
<message>
<source>Uses the default GDB pretty printers installed in your system or linked to the libraries your application uses.</source>
- <translation>Verwendet die GDB-Pretty-Printers, die im System installiert sind oder gegen die Bibliotheken gelinkt sind, die die Anwendung benutzt.</translation>
+ <translation>Verwendet die GDB-Pretty-Printers, die im System installiert sind oder gegen die Bibliotheken gelinkt sind, die die Anwendung verwendet.</translation>
</message>
<message>
<source>The options below give access to advanced&lt;br&gt;or experimental functions of GDB.&lt;p&gt;Enabling them may negatively impact&lt;br&gt;your debugging experience.</source>
@@ -25765,11 +25765,11 @@ markers in the source code editor.</source>
</message>
<message>
<source>Memory at Frame #%1 (%2) 0x%3</source>
- <translation>Speicher bei Stack-Frame #%1 (%2) 0x%3</translation>
+ <translation>Speicher bei Stackframe #%1 (%2) 0x%3</translation>
</message>
<message>
<source>Frame #%1 (%2)</source>
- <translation>Stack-Frame #%1 (%2)</translation>
+ <translation>Stackframe #%1 (%2)</translation>
</message>
<message>
<source>Open Disassembler at 0x%1</source>
@@ -25833,15 +25833,15 @@ markers in the source code editor.</source>
</message>
<message>
<source>Sources for this frame are available.&lt;br&gt;Double-click on the file name to open an editor.</source>
- <translation>Für diesen Stack-Frame ist Quellcode vorhanden&lt;br&gt;Doppelklicken Sie auf den Dateinamen, um einen Editor zu öffnen.</translation>
+ <translation>Für diesen Stackframe ist Quelltext vorhanden&lt;br&gt;Doppelklicken Sie auf den Dateinamen, um einen Editor zu öffnen.</translation>
</message>
<message>
<source>Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible.</source>
- <translation>Für diesen Stack-Frame ist keine binäre Debuginformation verfügbar. Entweder stammt die Core-Datei von einer ohne Debuginformation erstellten Anwendung oder es kann nicht auf die Debuginformation zugegriffen werden.</translation>
+ <translation>Für diesen Stackframe ist keine binäre Debuginformation verfügbar. Entweder stammt die Core-Datei von einer ohne Debuginformation erstellten Anwendung oder es kann nicht auf die Debuginformation zugegriffen werden.</translation>
</message>
<message>
<source>Binary debug information is accessible for this frame. However, matching sources have not been found.</source>
- <translation>Für diesen Stack-Frame ist binäre Debuginformation verfügbar. Es konnte aber kein passender Quellcode gefunden werden.</translation>
+ <translation>Für diesen Stackframe ist binäre Debuginformation verfügbar. Es konnte aber kein passender Quelltext gefunden werden.</translation>
</message>
<message>
<source>Note that most distributions ship debug information in separate packages.</source>
@@ -26076,7 +26076,7 @@ markers in the source code editor.</source>
</message>
<message>
<source>Cannot Display Stack Layout</source>
- <translation>Das Stack-Layout kann nicht angezeigt werden</translation>
+ <translation>Das Stacklayout kann nicht angezeigt werden</translation>
</message>
<message>
<source>Could not determine a suitable address range.</source>
@@ -26204,7 +26204,7 @@ markers in the source code editor.</source>
</message>
<message>
<source>Open Memory View Showing Stack Layout</source>
- <translation>Speicheranzeige an Adresse des Stack-Frames öffnen</translation>
+ <translation>Speicheranzeige an Adresse des Stackframes öffnen</translation>
</message>
<message>
<source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
@@ -26224,7 +26224,7 @@ markers in the source code editor.</source>
</message>
<message>
<source>Open Memory Editor Showing Stack Layout</source>
- <translation>Speichereditor an Adresse des Stack-Frames öffnen</translation>
+ <translation>Speichereditor an Adresse des Stackframes öffnen</translation>
</message>
<message>
<source>Open Memory Editor...</source>
@@ -26381,8 +26381,8 @@ markers in the source code editor.</source>
<message numerus="yes">
<source>Array of %n items</source>
<translation>
- <numerusform>Feld aus einem Element</numerusform>
- <numerusform>Feld aus %n Elementen</numerusform>
+ <numerusform>Array aus einem Element</numerusform>
+ <numerusform>Array aus %n Elementen</numerusform>
</translation>
</message>
<message>
@@ -26471,7 +26471,7 @@ If you have updated %2 via Maintenance Tool, you may need to rerun the Tool and
If you build %2 from sources and want to use a CDB executable with another bitness than your %2 build, you will need to build a separate CDB extension with the same bitness as the CDB you want to use.</source>
<translation>Interner Fehler: Die Erweiterung %1 wurde nicht gefunden.
Wenn Sie %2 mit dem Maintenance Tool aktualisiert haben, müssen Sie dieses vielleicht erneut ausführen, &quot;Komponenten hinzufügen oder entfernen&quot; auswählen und die Komponente Qt &gt; Tools &gt; Qt Creator CDB Debugger Support auswählen.
-Wenn Sie %2 aus den Quelltexten erstellen und eine ausführbare CDB-Datei mit einer anderen Architektur (32 Bit, 64 Bit) verwenden wollen als %2, müssen Sie eine separate CDB-Erweiterung mit der gleichen Architektur wie diese CDB-Datei erstellen.</translation>
+Wenn Sie %2 aus dem Quelltext erstellen und eine ausführbare CDB-Datei mit einer anderen Architektur (32 Bit, 64 Bit) verwenden wollen als %2, müssen Sie eine separate CDB-Erweiterung mit der gleichen Architektur wie diese CDB-Datei erstellen.</translation>
</message>
<message>
<source>Trace point %1 in thread %2 triggered.</source>
@@ -26588,14 +26588,14 @@ Installieren Sie das Paket &quot;Qt Debug Information Files&quot; für diese Qt-
You may be asked to share the contents of this log when reporting bugs related to debugger operation. In this case, make sure your submission does not contain data you do not want to or you are not allowed to share.
</source>
- <translation>Hinweis: Dieses Log enhält möglicherweise vertrauliche Informationen über Ihren Computer, Umgebungsvariablen, Speicherinhalte der untersuchten Prozesse oder weiteres. Es wird von %1 nie über das Internet übertragen und nur auf der Festplatte gespeichert, wenn Sie die entsprechende Option aus dem Kontextmenü aufrufen, oder durch Abläufe, die das Debugger-Plugin von %1 nicht beeinflussen kann, bespielsweise Auslagerungsdateien or andere Plugins, die Sie vielleicht benutzen.
+ <translation>Hinweis: Dieses Log enhält möglicherweise vertrauliche Informationen über Ihren Computer, Umgebungsvariablen, Speicherinhalte der untersuchten Prozesse oder weiteres. Es wird von %1 nie über das Internet übertragen und nur auf der Festplatte gespeichert, wenn Sie die entsprechende Option aus dem Kontextmenü aufrufen, oder durch Abläufe, die das Debugger-Plugin von %1 nicht beeinflussen kann, bespielsweise Auslagerungsdateien or andere Plugins, die Sie vielleicht verwenden.
Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie über Fehlfunktionen des Debugger berichten. In diesem Fall achten Sie darauf, dass Ihre Einsendung nur Daten enthält, die Sie weitergeben wollen und dürfen.
</translation>
</message>
<message>
<source>User commands are not accepted in the current state.</source>
- <translation>Die Eingabe von Nutzerkommandos ist in diesem Zustand nicht möglich.</translation>
+ <translation>Die Eingabe von Benutzerkommandos ist in diesem Zustand nicht möglich.</translation>
</message>
<message>
<source>Log File</source>
@@ -27011,7 +27011,7 @@ Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie
<source>Could not connect to the in-process QML debugger.
Do you want to retry?</source>
<translation>Konnte keine Verbindung zur Debuggerkomponente im Prozess herstellen.
-Soll es noch einmal versucht werden?</translation>
+Soll es erneut versucht werden?</translation>
</message>
<message>
<source>Starting %1</source>
@@ -27019,7 +27019,7 @@ Soll es noch einmal versucht werden?</translation>
</message>
<message>
<source>Cannot evaluate %1 in current stack frame.</source>
- <translation>%1 kann im aktuellen Stack-Frame nicht ausgewertet werden.</translation>
+ <translation>%1 kann im aktuellen Stackframe nicht ausgewertet werden.</translation>
</message>
<message>
<source>Context:</source>
@@ -27031,7 +27031,7 @@ Soll es noch einmal versucht werden?</translation>
</message>
<message>
<source>QML Debugger: Connection failed.</source>
- <translation>QML-Debugger: Verbindung gescheitert.</translation>
+ <translation>QML-Debugger: Verbindung fehlgeschlagen.</translation>
</message>
<message>
<source>JS Source for %1</source>
@@ -27083,7 +27083,7 @@ Soll es noch einmal versucht werden?</translation>
</message>
<message>
<source>&lt;p&gt;Add a mapping for Qt&apos;s source folders when using an unpatched version of Qt.</source>
- <translation>&lt;p&gt;Fügt eine Umsetzung für die Qt-Quellen hinzu, wenn eine nicht gepatchte Version von Qt benutzt wird.</translation>
+ <translation>&lt;p&gt;Fügt eine Umsetzung für die Qt-Quellen hinzu, wenn eine nicht gepatchte Version von Qt verwendet wird.</translation>
</message>
<message>
<source>&lt;p&gt;The source path contained in the debug information of the executable as reported by the debugger</source>
@@ -27099,7 +27099,7 @@ Soll es noch einmal versucht werden?</translation>
</message>
<message>
<source>&lt;p&gt;Mappings of source file folders to be used in the debugger can be entered here.&lt;/p&gt;&lt;p&gt;This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.&lt;/p&gt;&lt;p&gt;If source is specified as a regular expression by starting it with an open parenthesis, the paths in the ELF are matched with the regular expression to automatically determine the source path.&lt;/p&gt;&lt;p&gt;Example: &lt;b&gt;(/home/.*/Project)/KnownSubDir -&gt; D:\Project&lt;/b&gt; will substitute ELF built by any user to your local project directory.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Hier können Zuordnungen für die beim Debuggen benutzten Quelldateien festgelegt werden.&lt;/p&gt;&lt;p&gt;Das ist nützlich, wenn eine lokale Kopie des Quelldateibaums verwendet wird, der sich von der beim Erstellen der Module verwendeten unterscheidet, zum Beispiel beim Remote-Debuggen.&lt;/p&gt;&lt;p&gt;Wenn die Zuordnung durch eine öffnende Klammer am Anfang als regulärer Ausdruck angegeben wird, werden die passenden Pfade im ELF verwendet um den Quellpfad automatisch zu bestimmen.&lt;/p&gt;&lt;p&gt;Beispiel: &lt;b&gt;(/home/.*/Projekt)/BekanntesUnterverzeichnis -&gt; D:\Projekt&lt;/b&gt; wird ein von einem beliebigen Benutzer erstelltes ELF in Ihr lokales Projektverzeichnis umleiten.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Hier können Zuordnungen für die beim Debuggen verwendeten Quelldateien festgelegt werden.&lt;/p&gt;&lt;p&gt;Das ist nützlich, wenn eine lokale Kopie des Quelldateibaums verwendet wird, der sich von der beim Erstellen der Module verwendeten unterscheidet, zum Beispiel beim Remote-Debuggen.&lt;/p&gt;&lt;p&gt;Wenn die Zuordnung durch eine öffnende Klammer am Anfang als regulärer Ausdruck angegeben wird, werden die passenden Pfade im ELF verwendet um den Quellpfad automatisch zu bestimmen.&lt;/p&gt;&lt;p&gt;Beispiel: &lt;b&gt;(/home/.*/Projekt)/BekanntesUnterverzeichnis -&gt; D:\Projekt&lt;/b&gt; wird ein von einem beliebigen Benutzer erstelltes ELF in Ihr lokales Projektverzeichnis umleiten.&lt;/p&gt;</translation>
</message>
<message>
<source>&amp;Target path:</source>
@@ -27151,7 +27151,7 @@ Soll es noch einmal versucht werden?</translation>
</message>
<message>
<source>&amp;Username:</source>
- <translation>&amp;Nutzername:</translation>
+ <translation>&amp;Benutzername:</translation>
</message>
<message>
<source>&amp;Password:</source>
@@ -27392,7 +27392,7 @@ Einzelschritte in das Modul und das Setzen von Haltepunkten nach Datei und Zeile
</message>
<message>
<source>Base path for external debug information and debug sources. If empty, $SYSROOT/usr/lib/debug will be chosen.</source>
- <translation>Basispfad für Debuginformationen und Quellen. Als Vorgabe wird $SYSROOT/usr/lib/debug benutzt.</translation>
+ <translation>Basispfad für Debuginformationen und Quellen. Als Vorgabe wird $SYSROOT/usr/lib/debug verwendet.</translation>
</message>
<message>
<source>&amp;Kit:</source>
@@ -27466,7 +27466,7 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
</message>
<message>
<source>Use additional startup commands.</source>
- <translation>Benutze zusätzliche Kommandos beim Start.</translation>
+ <translation>Verwende zusätzliche Kommandos beim Start.</translation>
</message>
<message>
<source>C++ debugger:</source>
@@ -27538,7 +27538,7 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public Microsoft Symbol Server.&lt;br/&gt;This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note:&lt;/span&gt; It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.&lt;br/&gt;A fast internet connection is required for this to work smoothly,&lt;br/&gt;and a delay might occur when connecting for the first time and caching the symbols.&lt;/p&gt;&lt;p&gt;What would you like to set up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Der Debugger ist nicht zur Benutzung des öffentlichen Microsoft Symbol Servers eingerichtet.&lt;br/&gt;Dies wird zur Anzeige der Symbole der Betriebssystem-Bibliotheken empfohlen.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Hinweis:&lt;/span&gt; Bei der Verwendung des Microsoft Symbol Servers wird zusätzlich die Benutzung eines lokalen Zwischenspeichers für Symbole empfohlen.&lt;br/&gt;Allerdings ist dabei eine schnelle Internetverbindung für flüssiges Arbeiten erforderlich&lt;br/&gt;und bei der ersten Verbindung zum Zwischenspeichern der Symbole können Verzögerungen auftreten.&lt;/p&gt;&lt;p&gt;Was möchten Sie einrichten?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Der Debugger ist nicht zur Verwendung des öffentlichen Microsoft Symbol Servers eingerichtet.&lt;br/&gt;Dies wird zur Anzeige der Symbole der Betriebssystem-Bibliotheken empfohlen.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Hinweis:&lt;/span&gt; Bei der Verwendung des Microsoft Symbol Servers wird zusätzlich der Einsatz eines lokalen Zwischenspeichers für Symbole empfohlen.&lt;br/&gt;Allerdings ist dabei eine schnelle Internetverbindung für flüssiges Arbeiten erforderlich&lt;br/&gt;und bei der ersten Verbindung zum Zwischenspeichern der Symbole können Verzögerungen auftreten.&lt;/p&gt;&lt;p&gt;Was möchten Sie einrichten?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Set up Symbol Paths</source>
@@ -27664,11 +27664,11 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
</message>
<message>
<source>Reopen dialog when application finishes</source>
- <translation>Dialog nach Beendigung der Anwendung wieder öffnen</translation>
+ <translation>Dialog nach Beendigung der Anwendung erneut öffnen</translation>
</message>
<message>
<source>Reopens this dialog when application finishes.</source>
- <translation>Öffnet den Dialog nach Beendigung der Anwendung wieder.</translation>
+ <translation>Öffnet den Dialog nach Beendigung der Anwendung erneut.</translation>
</message>
<message>
<source>Continue on attach</source>
@@ -27712,7 +27712,7 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
</message>
<message>
<source>The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &amp;quot;Locals&amp;quot; and &amp;quot;Expressions&amp;quot; views.</source>
- <translation>Die Ausgabe-Hilfsbibliothek wird benutzt um bestimmte Datentypen wie QString oder std::map in &amp;quot;Lokale Variablen&amp;quot; und &amp;quot;Ausdrücke&amp;quot; ansprechend anzuzeigen.</translation>
+ <translation>Die Ausgabe-Hilfsbibliothek wird verwendet um bestimmte Datentypen wie QString oder std::map in &amp;quot;Lokale Variablen&amp;quot; und &amp;quot;Ausdrücke&amp;quot; ansprechend anzuzeigen.</translation>
</message>
<message>
<source>Extra Debugging Helper</source>
@@ -28034,7 +28034,7 @@ Bitte wählen Sie einen 64-bit-Debugger in den Kit-Einstellungen für dieses Kit
</message>
<message>
<source>Reverse-execution history exhausted. Going forward again.</source>
- <translation>Keine weiteren rückwärts ausführbaren Schritte vorhanden. Führe sie wieder vorwärts aus.</translation>
+ <translation>Keine weiteren rückwärts ausführbaren Schritte vorhanden. Führe sie erneut vorwärts aus.</translation>
</message>
<message>
<source>Attempting to interrupt.</source>
@@ -28051,7 +28051,7 @@ Bitte wählen Sie einen 64-bit-Debugger in den Kit-Einstellungen für dieses Kit
</message>
<message>
<source>This debugger cannot handle user input.</source>
- <translation>Dieser Debugger kann keine Nutzereingaben verarbeiten.</translation>
+ <translation>Dieser Debugger kann keine Benutzereingaben verarbeiten.</translation>
</message>
<message>
<source>Stopped: &quot;%1&quot;.</source>
@@ -28181,7 +28181,7 @@ Für dieses Binärformat wären GDB oder LLDB besser als Debugger geeignet.</tra
</message>
<message>
<source>Reverse-execution recording failed.</source>
- <translation>Aufzeichnung für Rückwärtsausführung gescheitert.</translation>
+ <translation>Aufzeichnung für Rückwärtsausführung fehlgeschlagen.</translation>
</message>
<message>
<source>Found.</source>
@@ -28484,7 +28484,7 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl
</message>
<message>
<source>Use alternating row colors in debug views</source>
- <translation>Alternierende Farben für Zeilen in Debug-Ansichten benutzen</translation>
+ <translation>Alternierende Farben für Zeilen in Debug-Ansichten verwenden</translation>
</message>
<message>
<source>Changes the font size in the debugger views when the font size in the main editor changes.</source>
@@ -28496,7 +28496,7 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl
</message>
<message>
<source>Not all source code lines generate executable code. Putting a breakpoint on such a line acts as if the breakpoint was set on the next line that generated code. Selecting &apos;Adjust Breakpoint Locations&apos; shifts the red breakpoint markers in such cases to the location of the true breakpoint.</source>
- <translation>Nicht aus allen Quellcode-Zeilen wird ausführbarer Code erzeugt. Wenn man dort einen Haltepunkt setzt, verhält er sich so, als ob er auf die nächste Zeile gesetzt worden wäre, aus der Maschinencode erzeugt wurde. Das Aktivieren der Einstellung &apos;Positionen der Haltepunkte korrigieren&apos; bewirkt, dass der Haltepunkt-Marker in so einem Fall an die Stelle des resultierenden Haltepunkts verschoben wird.</translation>
+ <translation>Nicht aus allen Quelltext-Zeilen wird ausführbarer Code erzeugt. Wenn man dort einen Haltepunkt setzt, verhält er sich so, als ob er auf die nächste Zeile gesetzt worden wäre, aus der Maschinencode erzeugt wurde. Das Aktivieren der Einstellung &apos;Positionen der Haltepunkte korrigieren&apos; bewirkt, dass der Haltepunkt-Marker in so einem Fall an die Stelle des resultierenden Haltepunkts verschoben wird.</translation>
</message>
<message>
<source>Stopping and stepping in the debugger will automatically open views associated with the current location.</source>
@@ -28532,7 +28532,7 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl
</message>
<message>
<source>Use annotations in main editor when debugging</source>
- <translation>Annotationen im Haupt-Editor beim Debuggen benutzen</translation>
+ <translation>Annotationen im Haupt-Editor beim Debuggen verwenden</translation>
</message>
<message>
<source>Shows simple variable values as annotations in the main editor during debugging.</source>
@@ -28620,7 +28620,7 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl
</message>
<message>
<source>Maximum stack depth:</source>
- <translation>Maximale Stack-Tiefe:</translation>
+ <translation>Maximale Stacktiefe:</translation>
</message>
<message>
<source>&lt;unlimited&gt;</source>
@@ -29731,7 +29731,7 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
</message>
<message>
<source>Exchange Cursor and Mark</source>
- <translation>Textmarke und Markierung austauschen</translation>
+ <translation>Einfügemarke und Markierung austauschen</translation>
</message>
<message>
<source>Copy</source>
@@ -30045,11 +30045,11 @@ Grund: %3</translation>
</message>
<message>
<source>Value for key &quot;%1&quot; is not an array of objects</source>
- <translation>Wert des Schlüssels &quot;%1&quot; ist kein Feld von Objekten</translation>
+ <translation>Wert des Schlüssels &quot;%1&quot; ist kein Array von Objekten</translation>
</message>
<message>
<source>Value for key &quot;%1&quot; is not a string and not an array of strings</source>
- <translation>Wert des Schlüssels &quot;%1&quot; ist keine Zeichenkette und auch kein Feld von Zeichenketten</translation>
+ <translation>Wert des Schlüssels &quot;%1&quot; ist keine Zeichenkette und auch kein Array von Zeichenketten</translation>
</message>
<message>
<source>Value &quot;%2&quot; for key &quot;%1&quot; has invalid format</source>
@@ -30260,7 +30260,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
<name>QtC::FakeVim</name>
<message>
<source>Use FakeVim</source>
- <translation>FakeVim benutzen</translation>
+ <translation>FakeVim verwenden</translation>
</message>
<message>
<source>Read .vimrc from location:</source>
@@ -30348,7 +30348,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>Use system encoding for :source</source>
- <translation>System-Zeichenkodierung für :source benutzen</translation>
+ <translation>System-Zeichenkodierung für :source verwenden</translation>
</message>
<message>
<source>Scroll offset:</source>
@@ -30388,7 +30388,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>Use Vim-style Editing</source>
- <translation>Vim benutzen</translation>
+ <translation>Vim verwenden</translation>
</message>
<message>
<source>Mark &quot;%1&quot; not set.</source>
@@ -30413,11 +30413,11 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
<message>
<source>Type Control-Shift-Y, Control-Shift-Y to quit FakeVim mode.</source>
<translatorcomment>These are the names of the actual keys on my german Apple keyboard https://support.apple.com/de-de/HT201236</translatorcomment>
- <translation>Benutzen sie Control-Umschalt-Y, Control-Umschalt-Y, um den FakeVim-Modus zu verlassen.</translation>
+ <translation>Verwenden sie Control-Umschalt-Y, Control-Umschalt-Y, um den FakeVim-Modus zu verlassen.</translation>
</message>
<message>
<source>Type Alt-Y, Alt-Y to quit FakeVim mode.</source>
- <translation>Benutzen Sie Alt-Y, Alt-Y, um den FakeVim-Modus zu verlassen.</translation>
+ <translation>Verwenden Sie Alt-Y, Alt-Y, um den FakeVim-Modus zu verlassen.</translation>
</message>
<message>
<source>Unknown option:</source>
@@ -30675,7 +30675,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>SSL/TLS client identity key to use if requested by the server.</source>
- <translation>SSL/TLS Client Identity Key, der benutzt werden soll, wenn der Server diesen anfordert.</translation>
+ <translation>Der SSL/TLS Client Identity Key, der auf Anforderung des Servers verwendet werden soll.</translation>
</message>
<message>
<source>Disable auto-sync</source>
@@ -30691,7 +30691,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>User:</source>
- <translation>Nutzer:</translation>
+ <translation>Benutzer:</translation>
</message>
<message>
<source>Repository Settings</source>
@@ -31103,7 +31103,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>User</source>
- <translation>Nutzer</translation>
+ <translation>Benutzer</translation>
</message>
<message>
<source>Miscellaneous</source>
@@ -31162,7 +31162,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message>
<message>
<source>Imports existing projects that do not use qmake, CMake, Qbs, Meson, or Autotools. This allows you to use %1 as a code editor.</source>
- <translation>Importiert bereits existierende Projekte, die weder qmake, CMake, Qbs, Meson oder Autotools verwenden. Dadurch kann %1 als Code-Editor benutzt werden.</translation>
+ <translation>Importiert bereits existierende Projekte, die weder qmake, CMake, Qbs, Meson oder Autotools verwenden. Dadurch kann %1 als Code-Editor verwendet werden.</translation>
</message>
<message>
<source>Project Name and Location</source>
@@ -31341,7 +31341,7 @@ Jetzt Commit ausführen?</translation>
</message>
<message>
<source>Rebase, merge or am is in progress. Finish or abort it and then try again.</source>
- <translation>Es ist eine Rebase-, Merge- oder am-Operation aktiv. Bitte beenden oder brechen Sie sie ab und versuchen Sie es noch einmal.</translation>
+ <translation>Es ist eine Rebase-, Merge- oder am-Operation aktiv. Bitte beenden oder brechen Sie sie ab und versuchen Sie es erneut.</translation>
</message>
<message>
<source>Stash local changes and pop when %1 finishes.</source>
@@ -32360,7 +32360,7 @@ Möchten Sie ihn beenden?</translation>
</message>
<message>
<source>&amp;User:</source>
- <translation>&amp;Nutzer:</translation>
+ <translation>&amp;Benutzer:</translation>
</message>
<message>
<source>&amp;ssh:</source>
@@ -32404,7 +32404,7 @@ nicht konfiguriert ist.</translation>
</message>
<message>
<source>Invalid Gerrit configuration. Host, user and ssh binary are mandatory.</source>
- <translation>Ungültige Gerrit-Konfiguration. Host, Nutzer und ausführbare SSH-Datei müssen angegeben werden.</translation>
+ <translation>Ungültige Gerrit-Konfiguration. Host, Benutzer und ausführbare SSH-Datei müssen angegeben werden.</translation>
</message>
<message>
<source>Git is not available.</source>
@@ -32790,8 +32790,8 @@ Leer lassen, um das Dateisystem zu durchsuchen.</translation>
<message numerus="yes">
<source>Include branches and tags that have not been active for %n days.</source>
<translation>
- <numerusform>Branches und Tags einschließen, die seit einem Tag nicht benutzt wurden.</numerusform>
- <numerusform>Branches und Tags einschließen, die seit %n Tagen nicht benutzt wurden.</numerusform>
+ <numerusform>Branches und Tags einschließen, die seit einem Tag nicht verwendet wurden.</numerusform>
+ <numerusform>Branches und Tags einschließen, die seit %n Tagen nicht verwendet wurden.</numerusform>
</translation>
</message>
<message>
@@ -33502,7 +33502,7 @@ Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
</message>
<message>
<source>Using project access token.</source>
- <translation>Benutze das Zugriffstoken des Projekts.</translation>
+ <translation>Verwende das Zugriffstoken des Projekts.</translation>
</message>
<message>
<source>Logged in as %1</source>
@@ -34090,7 +34090,7 @@ Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe.</translation>
</message>
<message>
<source>Open in Edit Mode</source>
- <translation>Im Editieren-Modus öffnen</translation>
+ <translation>Im Bearbeiten-Modus öffnen</translation>
</message>
<message>
<source>Open in New Page</source>
@@ -34486,8 +34486,8 @@ Möchten Sie sie überschreiben?</translation>
<translation>Geben Sie die entsprechenden Argumente für das Erstellkommando ein.</translation>
</message>
<message>
- <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools)</source>
- <translation>Stellen Sie sicher, dass der Wert für die Anzahl paralleler Jobs im Erstellkommando groß genug ist (wie zum Beispiel -j200 für JOM oder Make)</translation>
+ <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools).</source>
+ <translation>Stellen Sie sicher, dass der Wert für die Anzahl paralleler Jobs im Erstellkommando groß genug ist (wie zum Beispiel -j200 für JOM oder Make).</translation>
</message>
<message>
<source>Keep original jobs number:</source>
@@ -34507,7 +34507,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Defines how Automatic Interception Interface should handle the various processes involved in a distributed job. It is not necessary for &quot;Visual Studio&quot; or &quot;Make and Build tools&quot; builds, but can be used to provide configuration options if those builds use additional processes that are not included in those packages. It is required to configure distributable processes in &quot;Dev Tools&quot; builds.</source>
- <translation>Bestimmt, wie das Automatic Interception Interface die in einem verteilten Job involvierten Prozesse behandelt. Benötigt, um verteilte Prozesse in Kompilierungen mit &quot;Dev Tools&quot; zu konfigurieren. Nicht für Kompilierungen mit &quot;Visual Studio&quot; oder &quot;Make and Build tools&quot; benötigt, kann aber zur Konfiguration zusätzlicher Prozesse benutzt werden, die nicht in diesen Paketen enthalten sind.</translation>
+ <translation>Bestimmt, wie das Automatic Interception Interface die in einem verteilten Job involvierten Prozesse behandelt. Benötigt, um verteilte Prozesse in Kompilierungen mit &quot;Dev Tools&quot; zu konfigurieren. Nicht für Kompilierungen mit &quot;Visual Studio&quot; oder &quot;Make and Build tools&quot; benötigt, kann aber zur Konfiguration zusätzlicher Prozesse verwendet werden, die nicht in diesen Paketen enthalten sind.</translation>
</message>
<message>
<source>Avoid local task execution:</source>
@@ -34519,7 +34519,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Determines the maximum number of CPU cores that can be used in a build, regardless of the number of available Agents. It takes into account both local and remote cores, even if the Avoid Task Execution on Local Machine option is selected.</source>
- <translation>Bestimmt unabhängig von der Anzahl verfügbarer Agents die maximale Anzahl CPU-Kerne, die beim Erstellen benutzt werden. Berücksichtigt sowohl lokale als auch entfernte Kerne, auch wenn die Option &quot;Lokales Ausführen von Aufgaben vermeiden&quot; ausgewählt ist.</translation>
+ <translation>Bestimmt unabhängig von der Anzahl verfügbarer Agents die maximale Anzahl CPU-Kerne, die beim Erstellen verwendet werden. Berücksichtigt sowohl lokale als auch entfernte Kerne, auch wenn die Option &quot;Lokales Ausführen von Aufgaben vermeiden&quot; ausgewählt ist.</translation>
</message>
<message>
<source>Maximum CPUs to utilize in the build:</source>
@@ -34551,7 +34551,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Specifies a custom header line which will be displayed in the beginning of the build output text. This title will also be used for the Build History and Build Monitor displays.</source>
- <translation>Gibt eine benutzerdefinierte Kopfzeile an, die vor der Ausgabe der Kompilierung angezeigt wird. Dieser Titel wird auch für die Anzeigen &quot;Build History&quot; und &quot;Build Monitor&quot; benutzt.</translation>
+ <translation>Gibt eine benutzerdefinierte Kopfzeile an, die vor der Ausgabe der Kompilierung angezeigt wird. Dieser Titel wird auch für die Anzeigen &quot;Build History&quot; und &quot;Build Monitor&quot; verwendet.</translation>
</message>
<message>
<source>Save IncrediBuild monitor file:</source>
@@ -34559,7 +34559,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Writes a copy of the build progress file (.ib_mon) to the specified location. If only a folder name is given, a generated GUID will serve as the file name. The full path of the saved Build Monitor will be written to the end of the build output.</source>
- <translation>Schreibt eine Kopie der Monitor-Datei (.ib_mon) an den angegebenen Ort. Wenn nur ein Verzeichnisname angegeben ist, wird eine generierte GUID als Dateiname benutzt. Der vollständige Pfad der gespeicherten Monitor-Datei wird am Ende der Ausgabe der Kompilierung angezeigt.</translation>
+ <translation>Schreibt eine Kopie der Monitor-Datei (.ib_mon) an den angegebenen Ort. Wenn nur ein Verzeichnisname angegeben ist, wird eine generierte GUID als Dateiname verwendet. Der vollständige Pfad der gespeicherten Monitor-Datei wird am Ende der Ausgabe der Kompilierung angezeigt.</translation>
</message>
<message>
<source>Suppress STDOUT:</source>
@@ -34583,7 +34583,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Shows, for each file built, the command-line used by IncrediBuild to build the file.</source>
- <translation>Zeigt für jede Datei die Kommandozeile, die von IncrediBuild zum Erstellen der Datei benutzt wird.</translation>
+ <translation>Zeigt für jede Datei die Kommandozeile, die von IncrediBuild zum Erstellen der Datei verwendet wird.</translation>
</message>
<message>
<source>Show Agents in output:</source>
@@ -34591,7 +34591,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Shows the Agent used to build each file.</source>
- <translation>Zeigt für jede Datei den Agent, der zum Erstellen der Datei benutzt wird.</translation>
+ <translation>Zeigt für jede Datei den Agent, der zum Erstellen der Datei verwendet wird.</translation>
</message>
<message>
<source>Show Time in output:</source>
@@ -34606,16 +34606,16 @@ Möchten Sie sie überschreiben?</translation>
<translation>IncrediBuilds Kopfzeile in der Ausgabe verstecken:</translation>
</message>
<message>
- <source>Suppresses IncrediBuild&apos;s header in the build output</source>
- <translation>Unterdrückt die Kopfzeile von IncrediBuild in der Ausgabe der Kompilierung</translation>
+ <source>Suppresses IncrediBuild&apos;s header in the build output.</source>
+ <translation>Unterdrückt die Kopfzeile von IncrediBuild in der Ausgabe der Kompilierung.</translation>
</message>
<message>
<source>Internal IncrediBuild logging level:</source>
<translation>Stufe der internen IncrediBuild-Protokollierung:</translation>
</message>
<message>
- <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support</source>
- <translation>Überschreibt die Stufe der internen Protokollierung von IncrediBuild für diese Kompilierung. Beeinflusst weder die Ausgabe noch die dem Benutzer zugängliche Protokollierung. Wird hauptsächlich zur Fehlerbehebung mit Hilfe des Supports von IncrediBuild benutzt</translation>
+ <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support.</source>
+ <translation>Überschreibt die Stufe der internen Protokollierung von IncrediBuild für diese Kompilierung. Beeinflusst weder die Ausgabe noch die dem Benutzer zugängliche Protokollierung. Wird hauptsächlich zur Fehlerbehebung mit Hilfe des Supports von IncrediBuild verwendet.</translation>
</message>
<message>
<source>Miscellaneous</source>
@@ -34634,16 +34634,16 @@ Möchten Sie sie überschreiben?</translation>
<translation>Bei Fehler anhalten:</translation>
</message>
<message>
- <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds</source>
- <translation>Wenn angegeben, wird die Ausführung angehalten sobald ein Fehler auftritt. Dies ist das voreingestellte Verhalten bei Kompilierungen mit &quot;Visual Studio&quot;, aber nicht für Kompilierungen mit &quot;Make and Build tools&quot; oder &quot;Dev Tools&quot;</translation>
+ <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds.</source>
+ <translation>Wenn angegeben, wird die Ausführung angehalten sobald ein Fehler auftritt. Dies ist das voreingestellte Verhalten bei Kompilierungen mit &quot;Visual Studio&quot;, aber nicht für Kompilierungen mit &quot;Make and Build tools&quot; oder &quot;Dev Tools&quot;.</translation>
</message>
<message>
<source>Additional Arguments:</source>
<translation>Zusätzliche Argumente:</translation>
</message>
<message>
- <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line</source>
- <translation>Fügt zusätzliche Argumente für buildconsole manuell hinzu. Der Inhalt dieses Eingabefelds wird an die finale Kommandozeile für buildconsole angefügt</translation>
+ <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line.</source>
+ <translation>Fügt zusätzliche Argumente für buildconsole manuell hinzu. Der Inhalt dieses Eingabefelds wird an die finale Kommandozeile für buildconsole angefügt.</translation>
</message>
<message>
<source>Open Build Monitor:</source>
@@ -34667,11 +34667,11 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Force remote:</source>
- <translation>&quot;--force-remote&quot; benutzen:</translation>
+ <translation>&quot;--force-remote&quot; verwenden:</translation>
</message>
<message>
<source>Alternate tasks preference:</source>
- <translation>&quot;--alternate&quot; benutzen:</translation>
+ <translation>&quot;--alternate&quot; verwenden:</translation>
</message>
<message>
<source>CMake</source>
@@ -34783,7 +34783,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>The provisioning profile &quot;%1&quot; (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail.</source>
- <translation>Das zum Signieren der Anwendung verwendete Provisioning-Profil &quot;%1&quot; (%2) deckt das Gerät %3 (%4) nicht ab. Deployment auf dieses wird scheitern.</translation>
+ <translation>Das zum Signieren der Anwendung verwendete Provisioning-Profil &quot;%1&quot; (%2) deckt das Gerät %3 (%4) nicht ab. Deployment auf dieses wird fehlschlagen.</translation>
</message>
<message>
<source>Deploy to iOS device</source>
@@ -34881,7 +34881,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>To use this device you need to enable developer mode on it.</source>
- <translation>Um dieses Gerät zu benutzen, müssen Sie darauf den Entwicklungsmodus aktivieren.</translation>
+ <translation>Um dieses Gerät zu verwenden, müssen Sie darauf den Entwicklungsmodus aktivieren.</translation>
</message>
<message>
<source>%1 is not connected. Select %2?</source>
@@ -34913,11 +34913,11 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Application install on simulator failed. Simulator not running.</source>
- <translation>Die Installation der Anwendung im Simulator ist gescheitert. Der Simulator läuft nicht.</translation>
+ <translation>Die Installation der Anwendung im Simulator ist fehlgeschlagen. Der Simulator läuft nicht.</translation>
</message>
<message>
<source>Application launch on simulator failed. Invalid bundle path %1</source>
- <translation>Der Start der Anwendung im Simulator ist gescheitert. Der Bundle-Pfad %1 ist ungültig</translation>
+ <translation>Der Start der Anwendung im Simulator ist fehlgeschlagen. Der Bundle-Pfad %1 ist ungültig</translation>
</message>
<message>
<source>Application launch on simulator failed. Simulator not running. %1</source>
@@ -34925,7 +34925,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Application install on simulator failed. %1</source>
- <translation>Die Installation der Anwendung im Simulator ist gescheitert. %1</translation>
+ <translation>Die Installation der Anwendung im Simulator ist fehlgeschlagen. %1</translation>
</message>
<message>
<source>Cannot capture console output from %1. Error redirecting output to %2.*</source>
@@ -34937,7 +34937,7 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>Application launch on simulator failed. %1</source>
- <translation>Der Start der Anwendung im Simulator ist gescheitert. %1</translation>
+ <translation>Der Start der Anwendung im Simulator ist fehlgeschlagen. %1</translation>
</message>
<message>
<source>Invalid simulator response. Device Id mismatch. Device Id = %1 Response Id = %2</source>
@@ -35283,7 +35283,7 @@ Ablaufdatum: %3</translation>
</message>
<message>
<source>Using default development team and provisioning profile.</source>
- <translation>Die Vorgaben für Entwicklerteam und Provisioning-Profil werden benutzt.</translation>
+ <translation>Die Vorgaben für Entwicklerteam und Provisioning-Profil werden verwendet.</translation>
</message>
<message>
<source>Development team: %1 (%2)</source>
@@ -35295,7 +35295,7 @@ Ablaufdatum: %3</translation>
</message>
<message>
<source>%1 not configured. Use Xcode and Apple developer account to configure the provisioning profiles and teams.</source>
- <translation>%1 sind nicht konfiguriert. Benutzen Sie Xcode und Ihr Apple-Entwicklerkonto, um die Provisioning-Profile und Teams zu konfigurieren.</translation>
+ <translation>%1 sind nicht konfiguriert. Verwenden Sie Xcode und Ihr Apple-Entwicklerkonto, um die Provisioning-Profile und Teams zu konfigurieren.</translation>
</message>
<message>
<source>Development teams</source>
@@ -35566,7 +35566,7 @@ Beispiel: *.cpp%1*.h</translation>
<source>Additional JSON configuration sent to all running language servers for this project.
See the documentation of the specific language server for valid settings.</source>
<translation>Zusätzliche JSON-Konfiguration, die an alle laufenden Language Server für dieses Projekt gesendet wird.
-Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Language Servers.</translation>
+Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Language Servers.</translation>
</message>
<message>
<source>&amp;Add</source>
@@ -36492,15 +36492,15 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Langu
</message>
<message>
<source>User</source>
- <translation>Nutzer</translation>
+ <translation>Benutzer</translation>
</message>
<message>
<source>Username to use by default on commit.</source>
- <translation>Nutzername für Commit.</translation>
+ <translation>Benutzername für Commit.</translation>
</message>
<message>
<source>Default username:</source>
- <translation>Vorgabe für Nutzernamen:</translation>
+ <translation>Vorgabe für Benutzernamen:</translation>
</message>
<message>
<source>Email to use by default on commit.</source>
@@ -36540,7 +36540,7 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des benutzten Langu
</message>
<message>
<source>Prompt for credentials</source>
- <translation>Nutzerdaten abfragen</translation>
+ <translation>Benutzerdaten abfragen</translation>
</message>
<message>
<source>For example: &quot;https://[user[:pass]@]host[:port]/[path]&quot;.</source>
@@ -37034,7 +37034,7 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt
</message>
<message>
<source>Edit Element Properties</source>
- <translation>Elementeigenschaften editieren</translation>
+ <translation>Elementeigenschaften bearbeiten</translation>
</message>
<message>
<source>Shift+Return</source>
@@ -37042,7 +37042,7 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt
</message>
<message>
<source>Edit Item on Diagram</source>
- <translation>Element auf Diagramm editieren</translation>
+ <translation>Element auf Diagramm bearbeiten</translation>
</message>
<message>
<source>Return</source>
@@ -37347,7 +37347,7 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt
<name>QtC::PerfProfiler</name>
<message>
<source>Stack snapshot size (kB):</source>
- <translation>Größe des Stack-Abbilds (kB):</translation>
+ <translation>Größe des Stackabbilds (kB):</translation>
</message>
<message>
<source>Call graph mode:</source>
@@ -37964,7 +37964,7 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message>
<message>
<source>Edit File</source>
- <translation>Datei zum Editieren anfordern</translation>
+ <translation>Datei zum Bearbeiten anfordern</translation>
</message>
<message>
<source>Add</source>
@@ -38316,15 +38316,15 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message>
<message>
<source>P4 client:</source>
- <translation>P4 Client:</translation>
+ <translation>P4-Client:</translation>
</message>
<message>
<source>P4 user:</source>
- <translation>P4 Nutzer:</translation>
+ <translation>P4-Benutzer:</translation>
</message>
<message>
<source>P4 port:</source>
- <translation>P4 Port-Nummer:</translation>
+ <translation>P4-Port:</translation>
</message>
<message>
<source>Environment Variables</source>
@@ -38344,7 +38344,7 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message>
<message>
<source>User:</source>
- <translation>Nutzer:</translation>
+ <translation>Benutzer:</translation>
</message>
<message>
<source>No executable specified</source>
@@ -38601,7 +38601,7 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message>
<message>
<source>Locates files of all open projects. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet Dateien in allen geöffneten Projekten. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet Dateien in allen geöffneten Projekten. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>All Projects</source>
@@ -38701,7 +38701,7 @@ Außer: %2
</message>
<message>
<source>Locates files from the current document&apos;s project. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet Dateien im Projekt des aktuellen Dokuments. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet Dateien im Projekt des aktuellen Dokuments. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>Project &quot;%1&quot;</source>
@@ -38764,7 +38764,7 @@ konnte dem Projekt &quot;%2&quot; nicht hinzugefügt werden.</translation>
</message>
<message>
<source>Hide Source and Header Groups</source>
- <translation>Source- und Headergruppen ausblenden</translation>
+ <translation>Quelltext- und Header-Gruppenverzeichnisse ausblenden</translation>
</message>
<message>
<source>Synchronize with Editor</source>
@@ -39451,7 +39451,7 @@ Bitte versuchen Sie es erneut.</translation>
</message>
<message>
<source>Locates files from all project directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
- <translation>Findet Dateien in allen Projektverzeichnissen. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie noch einmal &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
+ <translation>Findet Dateien in allen Projektverzeichnissen. Fügen Sie &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um zur angegebenen Zeile zu springen. Fügen Sie erneut &quot;+&lt;Zahl&gt;&quot; oder &quot;:&lt;Zahl&gt;&quot; an, um auch zur angegebenen Spalte zu springen.</translation>
</message>
<message>
<source>Run Run Configuration</source>
@@ -40249,11 +40249,11 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
</message>
<message>
<source>The following compiler was already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;It was not configured again.</source>
- <translation>Der folgende Compiler ist bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Er wurde nicht noch einmal konfiguriert.</translation>
+ <translation>Der folgende Compiler ist bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Er wurde nicht erneut konfiguriert.</translation>
</message>
<message>
<source>The following compilers were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
- <translation>Die folgenden Compiler wurden bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Sie wurden nicht noch einmal konfiguriert.</translation>
+ <translation>Die folgenden Compiler wurden bereits konfiguriert:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Sie wurden nicht erneut konfiguriert.</translation>
</message>
<message>
<source>Clone of %1</source>
@@ -40588,7 +40588,7 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The name of the kit suitable for generating directory names. This value is used for the variable &lt;i&gt;%1&lt;/i&gt;, which for example determines the name of the shadow build directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Der Name des Kits, der zum Erzeugen von Verzeichnisnamen geeignet ist. Dieser Wert wird für die Variable &lt;i&gt;%1&lt;/i&gt; benutzt, die zum Beispiel den Namen des Shadow-Build-Verzeichnisses bestimmt.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Der Name des Kits, der zum Erzeugen von Verzeichnisnamen geeignet ist. Dieser Wert wird für die Variable &lt;i&gt;%1&lt;/i&gt; verwendet, die zum Beispiel den Namen des Shadow-Build-Verzeichnisses bestimmt.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>File system name:</source>
@@ -40872,7 +40872,7 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein
<message>
<source>The process cannot access the file because it is being used by another process.
Please close all running instances of your application before starting a build.</source>
- <translation>Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess benutzt wird.
+ <translation>Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.</translation>
</message>
<message>
@@ -41052,11 +41052,11 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
</message>
<message>
<source>File Generation Failed</source>
- <translation>Dateierzeugung gescheitert</translation>
+ <translation>Dateierzeugung fehlgeschlagen</translation>
</message>
<message>
<source>The wizard failed to generate files.&lt;br&gt;The error message was: &quot;%1&quot;.</source>
- <translation>Der Wizard scheiterte beim Erzeugen von Dateien.&lt;br&gt;Die Fehlermeldung war: &quot;%1&quot;.</translation>
+ <translation>Der Wizard konnte Dateien nicht erzeugen.&lt;br&gt;Die Fehlermeldung war: &quot;%1&quot;.</translation>
</message>
<message>
<source>Failed to Overwrite Files</source>
@@ -41076,7 +41076,7 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
</message>
<message>
<source>Failed to Polish Files</source>
- <translation>&quot;Polish&quot; von Dateien gescheitert</translation>
+ <translation>&quot;Polish&quot; von Dateien fehlgeschlagen</translation>
</message>
<message>
<source>Failed to Open Files</source>
@@ -41318,7 +41318,7 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern verfügbar
Use this &quot;compat&quot; version if you want to use other build systems than CMake or Qt versions lower than 6.</source>
<translation>Erstellt eine Qt Quick-Anwendung, die ein leeres Fenster enthält.
-Nutzen Sie diese &quot;Kompatibilitätsversion&quot;, falls Sie andere Buildsysteme als CMake oder frühere Qt-Versionen als Qt 6 benutzen wollen.</translation>
+Nutzen Sie diese &quot;Kompatibilitätsversion&quot;, falls Sie andere Buildsysteme als CMake oder frühere Qt-Versionen als Qt 6 verwenden wollen.</translation>
</message>
<message>
<source>Qt Quick Application (compat)</source>
@@ -41452,7 +41452,7 @@ Wahlweise können Sie ein Projekt erstellen, das in Qt Design Studio geöffnet w
<source>You must tell Qt Creator which test framework is used inside the project.
You should not mix multiple test frameworks in a project.</source>
- <translation>Sie müssen Qt Creator mitteilen, welches Test-Framework im Projekt benutzt wird.
+ <translation>Sie müssen Qt Creator mitteilen, welches Test-Framework im Projekt verwendet wird.
Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translation>
</message>
@@ -41824,7 +41824,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>Specify basic information about the classes for which you want to generate skeleton source code files.</source>
- <translation>Geben Sie Informationen bezüglich der Klassen ein, für die Sie Quelltexte generieren wollen.</translation>
+ <translation>Geben Sie Informationen bezüglich der Klassen ein, für die Sie Quelltext generieren wollen.</translation>
</message>
<message>
<source>Fully qualified name, including namespaces</source>
@@ -42048,7 +42048,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>The minimum version of Qt you want to build the application for</source>
- <translation>Die niedrigste Qt-Version, die Sie zum Bauen der Anwendung benutzen wollen</translation>
+ <translation>Die niedrigste Qt-Version, die Sie zum Bauen der Anwendung verwenden wollen</translation>
</message>
<message>
<source>This wizard creates a simple unit test project using Boost.</source>
@@ -42651,46 +42651,32 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
<translation>Page mit typeId &quot;%1&quot; hat ungültigen &quot;index&quot;.</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Pfad &quot;%1&quot; existiert nicht in Json-Wizard Suchpfaden.
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>Pfad &quot;%1&quot; existiert nicht in JSON-Wizard Suchpfaden.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Prüfe &quot;%1&quot; für %2.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Prüfe &quot;%1&quot; für %2.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Konnte &quot;%1&quot; nicht auswerten: %2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Konnte &quot;%1&quot; nicht auswerten: %2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* Kein JSON-Objekt in &quot;%1&quot; gefunden.
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* Kein JSON-Objekt in &quot;%1&quot; gefunden.</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* Konfiguration gefunden und ausgewertet.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* Konfiguration gefunden und ausgewertet.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* Version %1 nicht unterstützt.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* Version %1 nicht unterstützt.</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>* Erstellen fehlgeschlagen: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>* Erstellen fehlgeschlagen: %1</translation>
</message>
<message>
<source>The platform selected for the wizard.</source>
@@ -42721,10 +42707,8 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
<translation>Bilddatei &quot;%1&quot; nicht gefunden.</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: &quot;%1&quot; nicht gefunden
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: &quot;%1&quot; nicht gefunden.</translation>
</message>
<message>
<source>key not found.</source>
@@ -43340,7 +43324,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>A version control operation failed for the following files. Please check your repository.</source>
- <translation>Für die folgenden Dateien ist eine Versionskontroll-Operation gescheitert. Bitte prüfen Sie Ihr Repository.</translation>
+ <translation>Für die folgenden Dateien ist eine Versionskontroll-Operation fehlgeschlagen. Bitte prüfen Sie Ihr Repository.</translation>
</message>
<message>
<source>Failure Updating Project</source>
@@ -43565,8 +43549,8 @@ Was soll %1 tun?</translation>
<translation>Das Build-Verzeichnis enthält das möglicherweise problematische Zeichen &quot;%1&quot;.</translation>
</message>
<message>
- <source> This warning can be suppressed &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
- <translation> Diese Warnung kann &lt;a href=&quot;dummy&quot;&gt;hier&lt;/a&gt; unterdrückt werden.</translation>
+ <source>This warning can be suppressed &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
+ <translation>Diese Warnung kann &lt;a href=&quot;dummy&quot;&gt;hier&lt;/a&gt; unterdrückt werden.</translation>
</message>
<message>
<source>The project is currently being parsed.</source>
@@ -43742,11 +43726,11 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>Either switches MSVC to English or keeps the language and just forces UTF-8 output (may vary depending on the used MSVC compiler).</source>
- <translation>Stellt MSVC entweder auf Englisch um oder behält die Sprache bei und erzwingt UTF-8-Ausgabe (abhängig vom benutzen MSVC-Compiler).</translation>
+ <translation>Stellt MSVC entweder auf Englisch um oder behält die Sprache bei und erzwingt UTF-8-Ausgabe (abhängig vom verwendeten MSVC-Compiler).</translation>
</message>
<message>
<source>Additional build environment settings when using this kit.</source>
- <translation>Zusätzliche Build-Umgebungseinstellungen bei Benutzung dieses Kits.</translation>
+ <translation>Zusätzliche Build-Umgebungseinstellungen bei Verwendung dieses Kits.</translation>
</message>
<message>
<source>The environment setting value is invalid.</source>
@@ -43806,7 +43790,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>Use parsers from kit:</source>
- <translation>Parser vom Kit benutzen:</translation>
+ <translation>Parser vom Kit verwenden:</translation>
</message>
<message>
<source>Cannot Parse</source>
@@ -44051,7 +44035,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>Use Project Default</source>
- <translation>Projekt-Vorgabe benutzen</translation>
+ <translation>Projekt-Vorgabe verwenden</translation>
</message>
<message>
<source>Default build directory:</source>
@@ -44063,7 +44047,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>Use qmlcachegen:</source>
- <translation>qmlcachegen benutzen:</translation>
+ <translation>qmlcachegen verwenden:</translation>
</message>
<message>
<source>Default Build Properties</source>
@@ -44130,7 +44114,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>If available, use a different margin. For example, the ColumnLimit from the ClangFormat plugin.</source>
- <translation>Benutzt unterschiedlichen Rand abhängig vom Kontext, falls verfügbar. Zum Beispiel das ColumnLimit vom ClangFormat Plugin.</translation>
+ <translation>Verwendet unterschiedlichen Rand abhängig vom Kontext, falls verfügbar. Zum Beispiel das ColumnLimit vom ClangFormat Plugin.</translation>
</message>
<message>
<source>Files in All Project Directories</source>
@@ -44195,7 +44179,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>User requested stop. Shutting down...</source>
- <translation>Abbruch auf Nutzeranforderung...</translation>
+ <translation>Abbruch auf Benutzeranforderung...</translation>
</message>
<message>
<source>Cannot run: No command given.</source>
@@ -44219,7 +44203,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>Imports existing projects that do not use qmake, CMake, Qbs, Meson, or Autotools.&lt;p&gt;This creates a project file that allows you to use %1 as a code editor and as a launcher for debugging and analyzing tools. If you want to build the project, you might need to edit the generated project file.</source>
- <translation>Importiert ein existierendes Projekt, dass nicht qmake, CMake, Qbs, Meson oder Autotools benutzt.&lt;p&gt;Dies erstellt eine Projektdatei, die Ihnen erlaubt, %1 als Code-Editor und zum Starten des Debuggers und von Analysewerkzeugen zu benutzen. Wenn Sie das Projekt bauen wollen, müssen Sie die generierte Datei möglicherweise anpassen.</translation>
+ <translation>Importiert ein existierendes Projekt, dass nicht qmake, CMake, Qbs, Meson oder Autotools verwendet.&lt;p&gt;Dies erstellt eine Projektdatei, die Ihnen erlaubt, %1 als Code-Editor und zum Starten des Debuggers und von Analysewerkzeugen zu verwenden. Wenn Sie das Projekt bauen wollen, müssen Sie die generierte Datei möglicherweise anpassen.</translation>
</message>
<message>
<source>Unknown build system &quot;%1&quot;</source>
@@ -44361,7 +44345,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>Use Python Language Server</source>
- <translation>Python Language Server benutzen</translation>
+ <translation>Python Language Server verwenden</translation>
</message>
<message>
<source>For a complete list of available options, consult the [Python LSP Server configuration documentation](%1).</source>
@@ -44409,7 +44393,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license.</source>
- <translation>Sie können PySide von PyPI (Community OSS-Version) oder, falls Sie den Qt-Installer benutzen und eine kommerzielle Lizenz besitzen, von Ihrer Qt-Installation installieren.</translation>
+ <translation>Sie können PySide von PyPI (Community OSS-Version) oder, falls Sie den Qt-Installer verwenden und eine kommerzielle Lizenz besitzen, von Ihrer Qt-Installation installieren.</translation>
</message>
<message>
<source>Select which version to install:</source>
@@ -44558,7 +44542,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>An item of Python wizard page data expects a &quot;trKey&quot; field containing the UI visible string for that Python version and a &quot;value&quot; field containing an object with a &quot;PySideVersion&quot; field used for import statements in the Python files.</source>
- <translation>Ein Eintrag in den &quot;items&quot; im Feld &quot;data&quot; einer Python-Assistenzseite erwartet ein Feld &quot;trKey&quot;, das den Anzeigenamen für diese Python-Version enthält, und ein Feld &quot;value&quot;, das ein Objekt mit einem Feld &quot;PySideVersion&quot; enthält, das für import-Anweisungen in den Python-Dateien benutzt wird.</translation>
+ <translation>Ein Eintrag in den &quot;items&quot; im Feld &quot;data&quot; einer Python-Assistenzseite erwartet ein Feld &quot;trKey&quot;, das den Anzeigenamen für diese Python-Version enthält, und ein Feld &quot;value&quot;, das ein Objekt mit einem Feld &quot;PySideVersion&quot; enthält, das für import-Anweisungen in den Python-Dateien verwendet wird.</translation>
</message>
<message>
<source>PySide version:</source>
@@ -44574,7 +44558,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>The interpreter used for Python based projects.</source>
- <translation>Der für Python-basierte Projekte benutzte Interpreter.</translation>
+ <translation>Der für Python-basierte Projekte verwendete Interpreter.</translation>
</message>
<message>
<source>No Python setup.</source>
@@ -44590,7 +44574,7 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>Python &quot;%1&quot; does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python.</source>
- <translation>Python &quot;%1&quot; enthält kein verwendbares pip. pip wird für das Installieren von Python-Paketen wie PySide und dem Python Language Server vom Python Package Index benötigt. Um diese Funktionen benutzen zu können, stellen Sie sicher, dass pip für dieses Python installiert ist.</translation>
+ <translation>Python &quot;%1&quot; enthält kein verwendbares pip. pip wird für das Installieren von Python-Paketen wie PySide und dem Python Language Server vom Python Package Index benötigt. Um diese Funktionen verwenden zu können, stellen Sie sicher, dass pip für dieses Python installiert ist.</translation>
</message>
<message>
<source>Python &quot;%1&quot; does not contain a usable venv. venv is the recommended way to isolate a development environment for a project from the globally installed Python.</source>
@@ -44605,8 +44589,8 @@ fails because Clang does not understand the target architecture.</source>
<translation>Pfad zum Python-Interpreter</translation>
</message>
<message>
- <source>No Python interpreter set for kit &quot;%1&quot;</source>
- <translation>Kein Python-Interpreter für das Kit &quot;%1&quot; eingerichtet</translation>
+ <source>No Python interpreter set for kit &quot;%1&quot;.</source>
+ <translation>Kein Python-Interpreter für das Kit &quot;%1&quot; eingerichtet.</translation>
</message>
</context>
<context>
@@ -44900,7 +44884,7 @@ fails because Clang does not understand the target architecture.</source>
<message>
<source>Use %1 settings directory for Qbs</source>
<extracomment>%1 == &quot;Qt Creator&quot; or &quot;Qt Design Studio&quot;</extracomment>
- <translation>Das Verzeichnis für Einstellungen von %1 auch für Qbs benutzen</translation>
+ <translation>Das Verzeichnis für Einstellungen von %1 auch für Qbs verwenden</translation>
</message>
<message>
<source>Path to qbs executable:</source>
@@ -45976,7 +45960,7 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di
</message>
<message>
<source>Checking this option avoids unwanted side effects, but may result in inexact parsing results.</source>
- <translation>Diese Einstellung verhindert ungewollte Nebeneffekte, kann aber zu ungenauen Resultaten beim Auswerten führen.</translation>
+ <translation>Diese Einstellung verhindert ungewollte Nebeneffekte, kann aber zu ungenauen Ergebnissen beim Auswerten führen.</translation>
</message>
<message>
<source>Qmake</source>
@@ -46025,7 +46009,7 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di
</message>
<message>
<source>Debug connection failed.</source>
- <translation>Debug-Verbindung gescheitert.</translation>
+ <translation>Debug-Verbindung fehlgeschlagen.</translation>
</message>
</context>
<context>
@@ -46261,9 +46245,9 @@ For qmlRegister... calls, make sure that you define the Module URI as a string l
Import-Verzeichnisse:
%2
-Für qmake-Projekte benutzen Sie die Variable QML_IMPORT_PATH, um Importpfade hinzuzufügen.
+Für qmake-Projekte verwenden Sie die Variable QML_IMPORT_PATH, um Importpfade hinzuzufügen.
Für Qbs-Projekte geben Sie eine qmlImportPaths-Eigenschaft in Ihrem Produkt an, um Importpfade hinzuzufügen.
-Für qmlproject-Projekte benutzen Sie die importPaths-Eigenschaft, um Importpfade hinzuzufügen.
+Für qmlproject-Projekte verwenden Sie die importPaths-Eigenschaft, um Importpfade hinzuzufügen.
Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMakeCache.txt steht.
Für qmlRegister...-Aufrufe stellen Sie sicher, dass Sie den Modul-URI als Zeichenkettenliteral definieren.
</translation>
@@ -46288,9 +46272,9 @@ For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt.
Importpfade:
%3
-Für qmake-Projekte benutzen Sie die Variable QML_IMPORT_PATH, um Importpfade hinzuzufügen.
+Für qmake-Projekte verwenden Sie die Variable QML_IMPORT_PATH, um Importpfade hinzuzufügen.
Für Qbs-Projekte geben Sie eine qmlImportPaths-Eigenschaft in Ihrem Produkt an, um Importpfade hinzuzufügen.
-Für qmlproject-Projekte benutzen Sie die Eigenschaft importPaths, um Importpfade hinzuzufügen.
+Für qmlproject-Projekte verwenden Sie die Eigenschaft importPaths, um Importpfade hinzuzufügen.
Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMakeCache.txt steht.
</translation>
</message>
@@ -46388,11 +46372,11 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa
</message>
<message>
<source>Expected array of strings after colon.</source>
- <translation>Nach dem Doppelpunkt wird ein Feld von Zeichenketten erwartet.</translation>
+ <translation>Nach dem Doppelpunkt wird ein Array von Zeichenketten erwartet.</translation>
</message>
<message>
<source>Expected array literal with only string literal members.</source>
- <translation>Es wird ein nur aus Zeichenketten bestehendes Feldliteral erwartet.</translation>
+ <translation>Es wird ein nur aus Zeichenketten bestehendes Arrayliteral erwartet.</translation>
</message>
<message>
<source>Expected string literal to contain &apos;Package/Name major.minor&apos; or &apos;Name major.minor&apos;.</source>
@@ -46400,11 +46384,11 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa
</message>
<message>
<source>Expected array of numbers after colon.</source>
- <translation>Nach dem Doppelpunkt wird ein aus Zahlen bestehendes Feld erwartet.</translation>
+ <translation>Nach dem Doppelpunkt wird ein aus Zahlen bestehendes Array erwartet.</translation>
</message>
<message>
<source>Expected array literal with only number literal members.</source>
- <translation>Es wird ein nur aus Zahlenliteralen bestehendes Feldliteral erwartet.</translation>
+ <translation>Es wird ein nur aus Zahlenliteralen bestehendes Arrayliteral erwartet.</translation>
</message>
<message>
<source>Meta object revision without matching export.</source>
@@ -46716,7 +46700,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message>
<message>
<source>var &quot;%1&quot; is used before its declaration.</source>
- <translation>Variable &quot;%1&quot; wird vor Deklaration benutzt.</translation>
+ <translation>Variable &quot;%1&quot; wird vor Deklaration verwendet.</translation>
</message>
<message>
<source>&quot;%1&quot; already is a var.</source>
@@ -46728,7 +46712,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message>
<message>
<source>Function &quot;%1&quot; is used before its declaration.</source>
- <translation>Funktion &quot;%1&quot; wird vor ihrer Deklaration benutzt.</translation>
+ <translation>Funktion &quot;%1&quot; wird vor ihrer Deklaration verwendet.</translation>
</message>
<message>
<source>Could not resolve the prototype &quot;%1&quot; of &quot;%2&quot;.</source>
@@ -46756,7 +46740,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message>
<message>
<source>Array value expected.</source>
- <translation>Feld erwartet.</translation>
+ <translation>Array erwartet.</translation>
</message>
<message>
<source>%1 value expected.</source>
@@ -46792,7 +46776,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message>
<message>
<source>%1 elements expected in array value.</source>
- <translation>Das Feld benötigt %1 Werte.</translation>
+ <translation>Das Array benötigt %1 Werte.</translation>
</message>
<message>
<source>Parsing QML Files</source>
@@ -47041,7 +47025,7 @@ Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um de
</message>
<message>
<source>Use custom command instead of built-in formatter</source>
- <translation>Benutzerdefiniertes Kommando anstatt des integrierten Formatierers benutzen</translation>
+ <translation>Benutzerdefiniertes Kommando anstatt des integrierten Formatierers verwenden</translation>
</message>
<message>
<source>Command:</source>
@@ -47073,7 +47057,7 @@ Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um de
</message>
<message>
<source>Use customized static analyzer</source>
- <translation>Angepasste statische Analyse benutzen</translation>
+ <translation>Angepasste statische Analyse verwenden</translation>
</message>
<message>
<source>Enabled</source>
@@ -47121,11 +47105,11 @@ Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um de
</message>
<message>
<source>Use QML Language Server advanced features (renaming, find usages and co.) (EXPERIMENTAL!)</source>
- <translation>Fortgeschrittene Funktionen vom QML Language Server benutzen (umbenennen, Verweise finden und weiteres) (EXPERIMENTELL!)</translation>
+ <translation>Fortgeschrittene Funktionen vom QML Language Server verwenden (umbenennen, Verweise finden und weiteres) (EXPERIMENTELL!)</translation>
</message>
<message>
<source>Use QML Language Server from latest Qt version</source>
- <translation>QML Language Server der neuesten Qt-Version benutzen</translation>
+ <translation>QML Language Server der neuesten Qt-Version verwenden</translation>
</message>
<message>
<source>Features</source>
@@ -47313,7 +47297,7 @@ Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um de
<source>Could not connect to the in-process QML profiler within %1 s.
Do you want to retry and wait %2 s?</source>
<translation>Innerhalb von %1 s konnte keine Verbindung zum QML-Profiler im Prozess hergestellt werden.
-Wollen Sie es noch einmal versuchen und %2 s warten?</translation>
+Wollen Sie es erneut versuchen und %2 s warten?</translation>
</message>
<message>
<source>%1 s</source>
@@ -49299,7 +49283,7 @@ wirklich löschen?</translation>
</message>
<message>
<source>The Qt library to use for all projects using this kit.&lt;br&gt;A Qt version is required for qmake-based projects and optional when using other build systems.</source>
- <translation>Die für alle Projekte, die dieses Kit verwenden, zu benutzende Qt-Bibliothek.&lt;br&gt;Für qmake-basierende Projekte ist diese Angabe erforderlich, für andere Build-Systeme optional.</translation>
+ <translation>Die zu verwendende Qt-Bibliothek für alle Projekte, die dieses Kit verwenden.&lt;br&gt;Für qmake-basierende Projekte ist diese Angabe erforderlich, für andere Build-Systeme optional.</translation>
</message>
<message>
<source>None</source>
@@ -49578,10 +49562,8 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
<translation>Verbinde zu Gerät...</translation>
</message>
<message>
- <source>Connected. Now doing extended checks.
-</source>
- <translation>Verbunden. Führe erweiterte Überprüfungen aus.
-</translation>
+ <source>Connected. Now doing extended checks.</source>
+ <translation>Verbunden. Führe erweiterte Überprüfungen aus.</translation>
</message>
<message>
<source>Basic connectivity test failed, device is considered unusable.</source>
@@ -49625,7 +49607,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message>
<message>
<source>&quot;%1&quot; will be used for deployment, because &quot;%2&quot; and &quot;%3&quot; are not available.</source>
- <translation>&quot;%1&quot; wird für das Deployment benutzt, da &quot;%2&quot; und &quot;%3&quot; nicht verfügbar sind.</translation>
+ <translation>&quot;%1&quot; wird für das Deployment verwendet, da &quot;%2&quot; und &quot;%3&quot; nicht verfügbar sind.</translation>
</message>
<message>
<source>Checking if required commands are available...</source>
@@ -49769,7 +49751,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message>
<message>
<source>The username to log into the device:</source>
- <translation>Nutzername für Geräte-Login:</translation>
+ <translation>Benutzername für Geräte-Login:</translation>
</message>
<message>
<source>Authentication type:</source>
@@ -49810,7 +49792,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message>
<message>
<source>&amp;Username:</source>
- <translation>&amp;Nutzername:</translation>
+ <translation>&amp;Benutzername:</translation>
</message>
<message>
<source>QML runtime executable:</source>
@@ -50071,15 +50053,15 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>Use sftp if available. Otherwise use default transfer.</source>
- <translation>Benutze SFTP, sofern verfügbar. Sonst verwende Standardmethode.</translation>
+ <translation>Verwende SFTP, sofern verfügbar. Sonst verwende Standardmethode.</translation>
</message>
<message>
<source>Use default transfer. This might be slow.</source>
- <translation>Benutze Standardmethode. Dies könnte langsam sein.</translation>
+ <translation>Verwende Standardmethode. Dies könnte langsam sein.</translation>
</message>
<message>
- <source>Unknown error occurred while trying to create remote directories</source>
- <translation>Beim Erstellen von entfernten Verzeichnissen ist ein unbekannter Fehler aufgetreten</translation>
+ <source>Unknown error occurred while trying to create remote directories.</source>
+ <translation>Beim Erstellen von entfernten Verzeichnissen ist ein unbekannter Fehler aufgetreten.</translation>
</message>
<message>
<source>Transfer method was downgraded from &quot;%1&quot; to &quot;%2&quot;. If this is unexpected, please re-test device &quot;%3&quot;.</source>
@@ -50095,7 +50077,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>rsync failed with exit code %1.</source>
- <translation>rsync scheiterte mit dem Rückgabewert %1.</translation>
+ <translation>rsync ist mit dem Rückgabewert %1 fehlgeschlagen.</translation>
</message>
<message>
<source>Deploy files</source>
@@ -50107,7 +50089,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>Use rsync or sftp if available, but prefer rsync. Otherwise use default transfer.</source>
- <translation>Benutze rsync oder sftp, sofern verfügbar, bevorzuge aber rsync. Sonst verwende Standardmethode.</translation>
+ <translation>Verwende rsync oder sftp, sofern verfügbar, bevorzuge aber rsync. Sonst verwende Standardmethode.</translation>
</message>
<message>
<source>rsync is only supported for transfers between different devices.</source>
@@ -50636,7 +50618,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>Last used colors</source>
- <translation>Zuletzt benutzte Farben</translation>
+ <translation>Zuletzt verwendete Farben</translation>
</message>
<message>
<source>Create New Color Theme</source>
@@ -50720,7 +50702,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>SCXML Generation Failed</source>
- <translation>SCXML-Erzeugung gescheitert</translation>
+ <translation>SCXML-Erzeugung fehlgeschlagen</translation>
</message>
<message>
<source>Loading document...</source>
@@ -50764,7 +50746,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>Export Failed</source>
- <translation>Export gescheitert</translation>
+ <translation>Export fehlgeschlagen</translation>
</message>
<message>
<source>Could not export to image.</source>
@@ -50776,7 +50758,7 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e
</message>
<message>
<source>Saving Failed</source>
- <translation>Speichern gescheitert</translation>
+ <translation>Speichern fehlgeschlagen</translation>
</message>
<message>
<source>Could not save the screenshot.</source>
@@ -51413,7 +51395,7 @@ Zeile: %4, Spalte: %5
</message>
<message>
<source>The Symbolic Name &lt;span style=&apos;white-space: nowrap&apos;&gt;&quot;%1&quot;&lt;/span&gt; you want to remove is used in Multi Property Names. Select the action to apply to references in these Multi Property Names.</source>
- <translation>Der symbolische Name &lt;span style=&apos;white-space: nowrap&apos;&gt;&quot;%1&quot;&lt;/span&gt;, den Sie entfernen wollen, wird in Multi-Property-Namen benutzt. Wählen Sie die Aktion, die Sie auf Referenzen in diesen Multi-Property-Namen anwenden wollen.</translation>
+ <translation>Der symbolische Name &lt;span style=&apos;white-space: nowrap&apos;&gt;&quot;%1&quot;&lt;/span&gt;, den Sie entfernen wollen, wird in Multi-Property-Namen verwendet. Wählen Sie die Aktion, die Sie auf Referenzen in diesen Multi-Property-Namen anwenden wollen.</translation>
</message>
<message>
<source>Failed to write &quot;%1&quot;</source>
@@ -51477,7 +51459,7 @@ Zeile: %4, Spalte: %5
</message>
<message>
<source>The properties of the Multi Property Name associated with the selected Symbolic Name. (use \\ for a literal \ in the value)</source>
- <translation>Die Eigenschaften des Multi-Property-Namens, der mit dem ausgewählten symbolischen Namen assoziiert ist. (Benutzen Sie \\ für ein \-Literal im Wert)</translation>
+ <translation>Die Eigenschaften des Multi-Property-Namens, der mit dem ausgewählten symbolischen Namen assoziiert ist. (Verwenden Sie \\ für ein \-Literal im Wert)</translation>
</message>
<message>
<source>The Hierarchical Name associated with the selected Symbolic Name.</source>
@@ -52142,7 +52124,7 @@ Warten Sie, bis er beendet ist, und versuchen Sie es dann erneut.</translation>
</message>
<message>
<source>Invalid Squish settings. Configure Squish installation path inside Preferences... &gt; Squish &gt; General to use this wizard.</source>
- <translation>Ungültige Squish-Einstellungen. Stellen Sie in Einstellungen... &gt; Squish &gt; Allgemein den Squish-Installationspfad ein, um diesen Assistenten zu benutzen.</translation>
+ <translation>Ungültige Squish-Einstellungen. Stellen Sie in Einstellungen... &gt; Squish &gt; Allgemein den Squish-Installationspfad ein, um diesen Assistenten zu verwenden.</translation>
</message>
<message>
<source>Available languages:</source>
@@ -52496,7 +52478,7 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>The color used for %1.</source>
- <translation>Die für &quot;%1&quot; benutzte Farbe.</translation>
+ <translation>Die für &quot;%1&quot; verwendete Farbe.</translation>
</message>
<message>
<source>Failed to open file.</source>
@@ -52520,11 +52502,11 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>Use internal terminal</source>
- <translation>Integriertes Terminal benutzen</translation>
+ <translation>Integriertes Terminal verwenden</translation>
</message>
<message>
<source>Uses the internal terminal when &quot;Run In Terminal&quot; is enabled and for &quot;Open Terminal here&quot;.</source>
- <translation>Benutzt das integrierte Terminal, wenn &quot;Im Terminal ausführen&quot; aktiviert ist und für &quot;Terminalfenster hier öffnen&quot;.</translation>
+ <translation>Verwendet das integrierte Terminal, wenn &quot;Im Terminal ausführen&quot; aktiviert ist und für &quot;Terminalfenster hier öffnen&quot;.</translation>
</message>
<message>
<source>Family:</source>
@@ -52532,7 +52514,7 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>The font family used in the terminal.</source>
- <translation>Der Name der Zeichensatz-Familie, die im Terminal benutzt wird.</translation>
+ <translation>Der Name der Zeichensatz-Familie, die im Terminal verwendet wird.</translation>
</message>
<message>
<source>Size:</source>
@@ -52540,15 +52522,15 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>The font size used in the terminal (in points).</source>
- <translation>Die Größe des Zeichensatzes, der im Terminal benutzt wird (in Punkten).</translation>
+ <translation>Die Größe des Zeichensatzes, der im Terminal verwendet wird (in Punkten).</translation>
</message>
<message>
<source>Allow blinking cursor</source>
- <translation>Blinkenden Cursor erlauben</translation>
+ <translation>Blinkende Einfügemarke erlauben</translation>
</message>
<message>
<source>Allow the cursor to blink.</source>
- <translation>Erlaubt dem Cursor zu blinken.</translation>
+ <translation>Erlaubt der Einfügemarke zu blinken.</translation>
</message>
<message>
<source>Shell path:</source>
@@ -52659,12 +52641,12 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
<translation>&quot;%1&quot; ist nicht ausführbar.</translation>
</message>
<message>
- <source>Terminal process exited with code %1</source>
- <translation>Der Terminalprozess wurde mit dem Rückgabewert %1 beendet</translation>
+ <source>Terminal process exited with code %1.</source>
+ <translation>Der Terminalprozess wurde mit dem Rückgabewert %1 beendet.</translation>
</message>
<message>
- <source>Process exited with code: %1</source>
- <translation>Prozess wurde mit dem Rückgabewert %1 beendet</translation>
+ <source>Process exited with code: %1.</source>
+ <translation>Prozess wurde mit dem Rückgabewert %1 beendet.</translation>
</message>
<message>
<source>Copy</source>
@@ -52688,11 +52670,11 @@ Die Datei &quot;%1&quot; konnte nicht geöffnet werden.</translation>
</message>
<message>
<source>Move Cursor Word Left</source>
- <translation>Cursor ein Wort nach links bewegen</translation>
+ <translation>Einfügemarke ein Wort nach links bewegen</translation>
</message>
<message>
<source>Move Cursor Word Right</source>
- <translation>Cursor ein Wort nach rechts bewegen</translation>
+ <translation>Einfügemarke ein Wort nach rechts bewegen</translation>
</message>
<message>
<source>Close Terminal</source>
@@ -53170,11 +53152,11 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
</message>
<message>
<source>Line number of the text cursor position in current document (starts with 1).</source>
- <translation>Zeilennummer der Cursorposition des aktuellen Dokuments (beginnend bei 1).</translation>
+ <translation>Zeilennummer der Einfügemarke des aktuellen Dokuments (beginnend bei 1).</translation>
</message>
<message>
<source>Column number of the text cursor position in current document (starts with 0).</source>
- <translation>Spaltennummer der Cursorposition des aktuellen Dokuments (beginnend bei 0).</translation>
+ <translation>Spaltennummer der Einfügemarke des aktuellen Dokuments (beginnend bei 0).</translation>
</message>
<message>
<source>Number of lines visible in current document.</source>
@@ -53247,7 +53229,7 @@ Werte kleiner als 100% können überlappende und falsch ausgerichtete Darstellun
</message>
<message>
<source>Cannot create user snippet directory %1</source>
- <translation>Das Snippet-Verzeichnis des Nutzers konnte nicht erstellt werden: %1</translation>
+ <translation>Das Snippet-Verzeichnis des Benutzers konnte nicht erstellt werden: %1</translation>
</message>
<message>
<source>Remove</source>
@@ -53648,7 +53630,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message>
<message>
<source>Center &amp;cursor on scroll</source>
- <translation>Cursor beim Scrollen in der &amp;Mitte halten</translation>
+ <translation>Einfügemarke beim Scrollen in der &amp;Mitte halten</translation>
</message>
<message>
<source>Enable text &amp;wrapping</source>
@@ -53692,7 +53674,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message>
<message>
<source>If available, use a different margin. For example, the ColumnLimit from the ClangFormat plugin.</source>
- <translation>Benutzt einen anderen Rand, falls verfügbar. Zum Beispiel das ColumnLimit vom ClangFormat Plugin.</translation>
+ <translation>Verwendet einen anderen Rand, falls verfügbar. Zum Beispiel das ColumnLimit vom ClangFormat Plugin.</translation>
</message>
<message>
<source>Animate navigation within file</source>
@@ -53894,7 +53876,7 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
&lt;/pre&gt;
&lt;/li&gt;
-&lt;li&gt;Normale Einrückung: Benutze Tabulatoren oder Leerzeichen entsprechend obiger Konfiguration.
+&lt;li&gt;Normale Einrückung: Verwende Tabulatoren oder Leerzeichen entsprechend obiger Konfiguration.
&lt;pre&gt;
(tab)int i = foo(a, b
(tab)(tab)(tab) c, d);
@@ -53912,7 +53894,7 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
</message>
<message>
<source>With Regular Indent</source>
- <translation>Benutze normale Einrückung</translation>
+ <translation>Verwende normale Einrückung</translation>
</message>
<message>
<source>The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files.</source>
@@ -54743,10 +54725,10 @@ Drücken Sie zusätzlich die Umschalttaste, wird ein Escape-Zeichen an der aktue
<message>
<source>Doxygen allows &quot;@&quot; and &quot;\&quot; to start commands.
By default, &quot;@&quot; is used if the surrounding comment starts with &quot;/**&quot; or &quot;///&quot;, and &quot;\&quot; is used
-if the comment starts with &quot;/*!&quot; or &quot;//!</source>
+if the comment starts with &quot;/*!&quot; or &quot;//!&quot;.</source>
<translation>Doxygen erlaubt es, Befehle mit &quot;@&quot; und &quot;\&quot; zu beginnen.
Die Vorgabe ist, mit &quot;@&quot; zu beginnen, wenn der umgebende Kommentar mit &quot;/**&quot; oder &quot;///&quot; anfängt,
-und &quot;\&quot; zu benutzen, wenn der Kommentar mit &quot;/*!&quot; oder &quot;//!&quot;.</translation>
+und &quot;\&quot; zu verwenden, wenn der Kommentar mit &quot;/*!&quot; oder &quot;//!&quot;.</translation>
</message>
<message>
<source>Generate brief description</source>
@@ -54822,7 +54804,7 @@ Wird auf Zeichen angewendet, sofern keine andere Regel zutrifft.</translation>
<source>Highlighted search results inside the editor.
Used to mark read accesses to C++ symbols.</source>
<translation>Hervorgehobene Suchergebnisse im Editor.
-Wird benutzt, um Lesezugriffe eines C++-Symbols zu markieren.</translation>
+Wird verwendet, um Lesezugriffe eines C++-Symbols zu markieren.</translation>
</message>
<message>
<source>Search Result (Alternative 2)</source>
@@ -54832,7 +54814,7 @@ Wird benutzt, um Lesezugriffe eines C++-Symbols zu markieren.</translation>
<source>Highlighted search results inside the editor.
Used to mark write accesses to C++ symbols.</source>
<translation>Hervorgehobene Suchergebnisse im Editor.
-Wird benutzt, um Schreibzugriffe eines C++-Symbols zu markieren.</translation>
+Wird verwendet, um Schreibzugriffe eines C++-Symbols zu markieren.</translation>
</message>
<message>
<source>Search Result Containing function</source>
@@ -54842,7 +54824,7 @@ Wird benutzt, um Schreibzugriffe eines C++-Symbols zu markieren.</translation>
<source>Highlighted search results inside the editor.
Used to mark containing function of the symbol usage.</source>
<translation>Hervorgehobene Suchergebnisse im Editor.
-Wird benutzt um die Funktion zu markieren, die ein gesuchtes Symbol benutzt.</translation>
+Wird verwendet um die Funktion zu markieren, die ein gesuchtes Symbol verwendet.</translation>
</message>
<message>
<source>Search Scope</source>
@@ -54900,7 +54882,7 @@ Wird benutzt um die Funktion zu markieren, die ein gesuchtes Symbol benutzt.</tr
<source>Occurrences of the symbol under the cursor.
(Only the background will be applied.)</source>
<translation>Vorkommen des unter der Einfügemarke befindlichen Symbols.
-(Nur der Hintergrund wird benutzt.)</translation>
+(Nur der Hintergrund wird verwendet.)</translation>
</message>
<message>
<source>Unused Occurrence</source>
@@ -55142,7 +55124,7 @@ Wird benutzt um die Funktion zu markieren, die ein gesuchtes Symbol benutzt.</tr
<source>Non user-defined language operators.
To style user-defined operators, use Overloaded Operator.</source>
<translation>Nicht benutzerdefinierte Sprachoperatoren.
-Um den Stil von benutzerdefinierten Operatoren festzulegen, benutzen Sie &quot;Überladene Operatoren&quot;.</translation>
+Um den Stil von benutzerdefinierten Operatoren festzulegen, verwenden Sie &quot;Überladene Operatoren&quot;.</translation>
</message>
<message>
<source>Preprocessor</source>
@@ -56033,11 +56015,11 @@ Die Trace-Daten sind verloren.</translation>
<name>QtC::Utils</name>
<message>
<source>Do not &amp;ask again</source>
- <translation>Nicht noch einmal nach&amp;fragen</translation>
+ <translation>Nicht erneut nach&amp;fragen</translation>
</message>
<message>
<source>Do not &amp;show again</source>
- <translation>Nicht noch einmal an&amp;zeigen</translation>
+ <translation>Nicht erneut an&amp;zeigen</translation>
</message>
<message>
<source>The class name must not contain namespace delimiters.</source>
@@ -56448,7 +56430,7 @@ Die Trace-Daten sind verloren.</translation>
</message>
<message>
<source>Refusing to remove your home directory.</source>
- <translation>Das Nutzerverzeichnis (Home) kann nicht entfernt werden.</translation>
+ <translation>Das Benutzerverzeichnis (Home) kann nicht entfernt werden.</translation>
</message>
<message>
<source>Failed to remove directory &quot;%1&quot;.</source>
@@ -56724,7 +56706,7 @@ Die Trace-Daten sind verloren.</translation>
</message>
<message>
<source>&lt;p&gt;No valid settings file could be found.&lt;/p&gt;&lt;p&gt;All settings files found in directory &quot;%1&quot; were unsuitable for the current version of %2, for instance because they were written by an incompatible version of %2, or because a different settings path was used.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Es konnte keine gültige Einstellungsdatei gefunden werden.&lt;/p&gt;&lt;p&gt;Alle im Verzeichnis &quot;%1&quot; gefundenen Einstellungsdateien sind für die aktuelle Version von %2 ungeeignet, zum Beispiel weil sie von einer inkompatiblen Version von %2 geschrieben wurden oder weil ein anderes Einstellungsverzeichnis benutzt wurde.&lt;/p&gt;</translation>
+ <translation>&lt;p&gt;Es konnte keine gültige Einstellungsdatei gefunden werden.&lt;/p&gt;&lt;p&gt;Alle im Verzeichnis &quot;%1&quot; gefundenen Einstellungsdateien sind für die aktuelle Version von %2 ungeeignet, zum Beispiel weil sie von einer inkompatiblen Version von %2 geschrieben wurden oder weil ein anderes Einstellungsverzeichnis verwendet wurde.&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;No valid settings file could be found.&lt;/p&gt;&lt;p&gt;All settings files found in directory &quot;%1&quot; were either too new or too old to be read.&lt;/p&gt;</source>
@@ -56799,9 +56781,9 @@ Existing variables can be referenced in a VALUE with ${OTHER}.
To clear a variable, put its name on a line with nothing else on it.
To disable a variable, prefix the line with &quot;#&quot;.</source>
<translation>Geben Sie eine Umgebungsvariable pro Zeile ein.
-Um eine Variable zu setzen oder zu ändern, benutzen Sie VARIABLE=WERT.
-Um einen Wert an eine Variable anzufügen, benutzen Sie VARIABLE+=WERT.
-Um einen Wert einer Variable voranzustellen, benutzen Sie VARIABLE=+WERT.
+Um eine Variable zu setzen oder zu ändern, verwenden Sie VARIABLE=WERT.
+Um einen Wert an eine Variable anzufügen, verwenden Sie VARIABLE+=WERT.
+Um einen Wert einer Variable voranzustellen, verwenden Sie VARIABLE=+WERT.
Existierende Variablen können in einem WERT mit ${ANDERE} verwendet werden.
Um eine Variable zu leeren, schreiben Sie nichts als ihren Namen in eine Zeile.
Um eine Variable zu deaktivieren, stellen Sie der Zeile &quot;#&quot; voran.</translation>
@@ -56899,7 +56881,7 @@ Um eine Variable zu deaktivieren, stellen Sie der Zeile &quot;#&quot; voran.</tr
</message>
<message>
<source>Do Not Show Again</source>
- <translation>Nicht noch einmal anzeigen</translation>
+ <translation>Nicht erneut anzeigen</translation>
</message>
<message>
<source>Close</source>
@@ -57122,7 +57104,7 @@ in &quot;%2&quot; aus.
</message>
<message>
<source>User:</source>
- <translation>Nutzer:</translation>
+ <translation>Benutzer:</translation>
</message>
<message>
<source>Password:</source>
@@ -57285,7 +57267,7 @@ in &quot;%2&quot; aus.
</message>
<message>
<source>Backtrace frame count:</source>
- <translation>Stack-Frames:</translation>
+ <translation>Stackframes:</translation>
</message>
<message>
<source>Suppression files:</source>
@@ -57573,7 +57555,7 @@ Mit Cache-Simulation werden weitere Ereigniszähler aktiviert:
</message>
<message>
<source>Use of Uninitialized Memory</source>
- <translation>Benutzung von nicht initialisiertem Speicher</translation>
+ <translation>Verwendung von nicht initialisiertem Speicher</translation>
</message>
<message>
<source>Show issues originating outside currently opened projects.</source>
@@ -57617,7 +57599,7 @@ Mit Cache-Simulation werden weitere Ereigniszähler aktiviert:
</message>
<message>
<source>Valgrind Analyze Memory uses the Memcheck tool to find memory leaks.</source>
- <translation>Die Speicheranalyse von Valgrind benutzt das Programm &quot;memcheck&quot;, um Speicherlecks zu finden.</translation>
+ <translation>Die Speicheranalyse von Valgrind verwendet das Programm &quot;memcheck&quot;, um Speicherlecks zu finden.</translation>
</message>
<message>
<source>Valgrind Memory Analyzer</source>
@@ -57630,7 +57612,7 @@ Mit Cache-Simulation werden weitere Ereigniszähler aktiviert:
<message>
<source>Valgrind Analyze Memory with GDB uses the Memcheck tool to find memory leaks.
When a problem is detected, the application is interrupted and can be debugged.</source>
- <translation>Die Speicheranalyse mit Valgrind und GDB benutzt das Programm &quot;memcheck&quot;, um Speicherlecks zu finden.
+ <translation>Die Speicheranalyse mit Valgrind und GDB verwendet das Programm &quot;memcheck&quot;, um Speicherlecks zu finden.
Wird ein Problem gefunden, dann wird die Anwendung angehalten und kann untersucht werden.</translation>
</message>
<message>
@@ -57842,7 +57824,7 @@ Wird ein Problem gefunden, dann wird die Anwendung angehalten und kann untersuch
</message>
<message>
<source>Go back one step in history. This will select the previously selected item.</source>
- <translation>Gehe einen Schritt im Verlauf zurück. Das vorher ausgewählte Element wird wieder ausgewählt.</translation>
+ <translation>Gehe einen Schritt im Verlauf zurück. Das vorher ausgewählte Element wird erneut ausgewählt.</translation>
</message>
<message>
<source>Go forward one step in history.</source>
@@ -58807,17 +58789,17 @@ Check settings or ensure Valgrind is installed and available in PATH.</source>
</message>
<message>
<source>User/&amp;alias configuration file:</source>
- <translation>Nutzer/&amp;Alias-Konfigurationsdatei:</translation>
+ <translation>Benutzer/&amp;Alias-Konfigurationsdatei:</translation>
</message>
<message>
<source>A file listing nicknames in a 4-column mailmap format:
&apos;name &lt;email&gt; alias &lt;email&gt;&apos;.</source>
- <translation>Eine Datei, die Nutzernamen in einem vierspaltigen Format (mailmap) enthält:
+ <translation>Eine Datei, die Benutzernamen in einem vierspaltigen Format (mailmap) enthält:
&apos;Name &lt;E-Mail&gt; Alias &lt;E-Mail&gt;&apos;.</translation>
</message>
<message>
<source>User &amp;fields configuration file:</source>
- <translation>Nutzer&amp;feld-Konfigurationsdatei:</translation>
+ <translation>Benutzer&amp;feld-Konfigurationsdatei:</translation>
</message>
<message>
<source>A simple file containing lines with field names like &quot;Reviewed-By:&quot; which will be added below the submit editor.</source>
@@ -58933,7 +58915,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>The activated version %1 is not supported by %2. Activate version %3 or higher.</source>
<translatorcomment>%1=sdkVersion, %2=QtC-Version, %3=minVersion</translatorcomment>
- <translation>Die aktivierte Version %1 wird von %2 nicht unterstützt. Benutzen Sie Version %3 oder höher.</translation>
+ <translation>Die aktivierte Version %1 wird von %2 nicht unterstützt. Verwenden Sie Version %3 oder höher.</translation>
</message>
<message>
<source>Activated version: %1</source>
@@ -59034,7 +59016,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Would you like to take a quick UI tour? This tour highlights important user interface elements and shows how they are used. To take the tour later, select Help &gt; UI Tour.</source>
- <translation>Wollen Sie sich kurz die Oberfläche vorführen lassen? Dabei wird gezeigt, wo die wichtigsten Bedienelemente sind und wie man sie benutzt. Sie können die Vorführung auch später über &quot;Hilfe&quot; &gt; &quot;Oberfläche vorführen&quot; starten.</translation>
+ <translation>Wollen Sie sich kurz die Oberfläche vorführen lassen? Dabei wird gezeigt, wo die wichtigsten Bedienelemente sind und wie man sie verwendet. Sie können die Vorführung auch später über &quot;Hilfe&quot; &gt; &quot;Oberfläche vorführen&quot; starten.</translation>
</message>
<message>
<source>Take UI Tour</source>
@@ -59050,7 +59032,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>&lt;p style=&quot;margin-top: 30px&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;padding-right: 20px&quot;&gt;Welcome:&lt;/td&gt;&lt;td&gt;Open examples, tutorials, and recent sessions and projects.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit:&lt;/td&gt;&lt;td&gt;Work with code and navigate your project.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Design:&lt;/td&gt;&lt;td&gt;Visually edit Widget-based user interfaces, state charts and UML models.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debug:&lt;/td&gt;&lt;td&gt;Analyze your application with a debugger or other analyzers.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Projects:&lt;/td&gt;&lt;td&gt;Manage project settings.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Help:&lt;/td&gt;&lt;td&gt;Browse the help database.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
- <translation>&lt;p style=&quot;margin-top: 30px&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;padding-right: 20px&quot;&gt;Willkommen:&lt;/td&gt;&lt;td&gt;Öffnen Sie Beispiele, Anleitungen, sowie kürzlich verwendete Sitzungen und Projekte.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Editieren:&lt;/td&gt;&lt;td&gt;Arbeiten Sie am Quelltext und navigieren Sie im Projekt.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Design:&lt;/td&gt;&lt;td&gt;Bearbeiten Sie Oberflächendesigns für Qt Widgets, State Charts und UML-Modelle.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debug:&lt;/td&gt;&lt;td&gt;Analysieren Sie Ihre Anwendung mit einem Debugger oder anderen Werkzeugen.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Projekte:&lt;/td&gt;&lt;td&gt;Verwalten Sie Projekteinstellungen.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hilfe:&lt;/td&gt;&lt;td&gt;Durchsuchen Sie die Hilfedatenbank.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
+ <translation>&lt;p style=&quot;margin-top: 30px&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;padding-right: 20px&quot;&gt;Willkommen:&lt;/td&gt;&lt;td&gt;Öffnen Sie Beispiele, Anleitungen, sowie kürzlich verwendete Sitzungen und Projekte.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bearbeiten:&lt;/td&gt;&lt;td&gt;Arbeiten Sie am Quelltext und navigieren Sie im Projekt.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Design:&lt;/td&gt;&lt;td&gt;Bearbeiten Sie Oberflächendesigns für Qt Widgets, State Charts und UML-Modelle.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debug:&lt;/td&gt;&lt;td&gt;Analysieren Sie Ihre Anwendung mit einem Debugger oder anderen Werkzeugen.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Projekte:&lt;/td&gt;&lt;td&gt;Verwalten Sie Projekteinstellungen.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hilfe:&lt;/td&gt;&lt;td&gt;Durchsuchen Sie die Hilfedatenbank.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>Kit Selector</source>
@@ -61498,7 +61480,7 @@ This is used for calculating the total implicit size.</source>
</message>
<message>
<source>Auto scroll</source>
- <translation>Automatisch rollen</translation>
+ <translation>Automatisch scrollen</translation>
</message>
<message>
<source>Toggles if the text scrolls when it exceeds its boundary.</source>
diff --git a/share/qtcreator/translations/qtcreator_fr.ts b/share/qtcreator/translations/qtcreator_fr.ts
index 8e802d897c6..c7057fc09ec 100644
--- a/share/qtcreator/translations/qtcreator_fr.ts
+++ b/share/qtcreator/translations/qtcreator_fr.ts
@@ -152,8 +152,8 @@
<translation>Lissage</translation>
</message>
<message>
- <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items. </source>
- <translation>Active/désactive l&apos;utilisation de l&apos;interpolation linéaire pour le lissage. Lorsque décoché, la méthode du plus proche voisin sera utilisée. Cela s&apos;applique principalement aux éléments images. </translation>
+ <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items.</source>
+ <translation>Active/désactive l&apos;utilisation de l&apos;interpolation linéaire pour le lissage. Lorsque décoché, la méthode du plus proche voisin sera utilisée. Cela s&apos;applique principalement aux éléments images.</translation>
</message>
<message>
<source>Antialiasing</source>
@@ -34341,8 +34341,8 @@ Souhaitez-vous les écraser&#xa0;?</translation>
<translation>Entrez les arguments appropriés pour votre commande de construction.</translation>
</message>
<message>
- <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools)</source>
- <translation>Assurez vous que le paramètre multi-job de la commande de construction est assez grande (telle que -j200 pour les outils de compilation comme JOM ou Make)</translation>
+ <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools).</source>
+ <translation>Assurez vous que le paramètre multi-job de la commande de construction est assez grande (telle que -j200 pour les outils de compilation comme JOM ou Make).</translation>
</message>
<message>
<source>Keep original jobs number:</source>
@@ -34461,16 +34461,16 @@ Souhaitez-vous les écraser&#xa0;?</translation>
<translation>Cacher l&apos;entête IncrediBuild dans la sortie&#xa0;:</translation>
</message>
<message>
- <source>Suppresses IncrediBuild&apos;s header in the build output</source>
- <translation>Supprimer l&apos;entête d&apos;IncrediBuild de la sortie de construction</translation>
+ <source>Suppresses IncrediBuild&apos;s header in the build output.</source>
+ <translation>Supprimer l&apos;entête d&apos;IncrediBuild de la sortie de construction.</translation>
</message>
<message>
<source>Internal IncrediBuild logging level:</source>
<translation>Niveau de journalisation interne d&apos;IncrediBuild&#xa0;:</translation>
</message>
<message>
- <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support</source>
- <translation>Écrase le niveau interne de journalisation d&apos;IncrediBuild pour cette construction. N&apos;affecte pas la sortie ou un quelconque journal accessible par l&apos;utilisateur. Utilisé principalement pour comprendre les problèmes avec l&apos;aide du support d&apos;IncrediBuild</translation>
+ <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support.</source>
+ <translation>Écrase le niveau interne de journalisation d&apos;IncrediBuild pour cette construction. N&apos;affecte pas la sortie ou un quelconque journal accessible par l&apos;utilisateur. Utilisé principalement pour comprendre les problèmes avec l&apos;aide du support d&apos;IncrediBuild.</translation>
</message>
<message>
<source>Miscellaneous</source>
@@ -34489,16 +34489,16 @@ Souhaitez-vous les écraser&#xa0;?</translation>
<translation>Arrêter en cas d&apos;erreur&#xa0;:</translation>
</message>
<message>
- <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds</source>
- <translation>Lorsque spécifié, l&apos;exécution s&apos;arrête dès qu&apos;une erreur est rencontrée. C&apos;est le comportement par défaut dans les constructions «&#xa0;Visual Studio&#xa0;», mais ce n&apos;est pas le cas pour les constructions avec «&#xa0;Make et les outils de compilation&#xa0;» ou les «&#xa0;outils de développeur&#xa0;»</translation>
+ <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds.</source>
+ <translation>Lorsque spécifié, l&apos;exécution s&apos;arrête dès qu&apos;une erreur est rencontrée. C&apos;est le comportement par défaut dans les constructions «&#xa0;Visual Studio&#xa0;», mais ce n&apos;est pas le cas pour les constructions avec «&#xa0;Make et les outils de compilation&#xa0;» ou les «&#xa0;outils de développeur&#xa0;».</translation>
</message>
<message>
<source>Additional Arguments:</source>
<translation>Arguments supplémentaires&#xa0;:</translation>
</message>
<message>
- <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line</source>
- <translation>Ajouter manuellement des arguments pour buildconsole. La valeur de ce champ est concaténé à la ligne de commande finale de buildconsole</translation>
+ <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line.</source>
+ <translation>Ajouter manuellement des arguments pour buildconsole. La valeur de ce champ est concaténé à la ligne de commande finale de buildconsole.</translation>
</message>
<message>
<source>Open Build Monitor:</source>
@@ -43130,8 +43130,8 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>Le répertoire de compilation contient des caractères potentiellement problématiques «&#xa0;%1&#xa0;».</translation>
</message>
<message>
- <source> This warning can be suppressed &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
- <translation> Cet avertissement peut être supprimé &lt;a href=&quot;dummy&quot;&gt;ici&lt;/a&gt;.</translation>
+ <source>This warning can be suppressed &lt;a href=&quot;dummy&quot;&gt;here&lt;/a&gt;.</source>
+ <translation>Cet avertissement peut être supprimé &lt;a href=&quot;dummy&quot;&gt;ici&lt;/a&gt;.</translation>
</message>
<message>
<source>Separate debug info:</source>
@@ -43548,39 +43548,28 @@ au projet «&#xa0;%2&#xa0;».</translation>
<translation>Le typeId «&#xa0;%1&#xa0;» du générateur est inconnu. Les typesIds pris en charge sont : «&#xa0;%2&#xa0;».</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Le chemin «&#xa0;%1&#xa0;» n’existe pas lors de la vérification des chemins de recherche de l’assistant Json.</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>Le chemin «&#xa0;%1&#xa0;» n’existe pas lors de la vérification des chemins de recherche de l’assistant JSON.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Vérification de «&#xa0;%1&#xa0;» pour %2.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Vérification de «&#xa0;%1&#xa0;» pour %2.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Échec de l’analyse de «&#xa0;%1&#xa0;»:%2:%3 : %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Échec de l’analyse de «&#xa0;%1&#xa0;»:%2:%3 : %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* N’a pas trouvé d’objet JSON dans «&#xa0;%1&#xa0;».
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* N’a pas trouvé d’objet JSON dans «&#xa0;%1&#xa0;».</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* La configuration a été trouvée et analysée.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* La configuration a été trouvée et analysée.</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>Assistant Json : «&#xa0;%1&#xa0;» introuvable
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found</source>
+ <translation>Assistant Json : «&#xa0;%1&#xa0;» introuvable.</translation>
</message>
<message>
<source>Page is not an object.</source>
@@ -43599,16 +43588,12 @@ au projet «&#xa0;%2&#xa0;».</translation>
<translation>La page avec le typeId «&#xa0;%1&#xa0;» a un «&#xa0;index&#xa0;» invalide.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* La version %1 n’est pas prise en charge.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* La version %1 n’est pas prise en charge.</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>* Impossible de créer&#xa0;: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>* Impossible de créer&#xa0;: %1</translation>
</message>
<message>
<source>key not found.</source>
@@ -44461,8 +44446,8 @@ Ces fichiers sont préservés.</numerusform>
<translation>Chemin de l&apos;interpréteur Python</translation>
</message>
<message>
- <source>No Python interpreter set for kit &quot;%1&quot;</source>
- <translation>Aucun interpréteur Python n&apos;est défini pour le kit «&#xa0;%1&#xa0;»</translation>
+ <source>No Python interpreter set for kit &quot;%1&quot;.</source>
+ <translation>Aucun interpréteur Python n&apos;est défini pour le kit «&#xa0;%1&#xa0;».</translation>
</message>
</context>
<context>
@@ -49563,10 +49548,8 @@ Le processus de contrôle n&apos;a pas pu démarrer.</translation>
<translation>Connexion au périphérique…</translation>
</message>
<message>
- <source>Connected. Now doing extended checks.
-</source>
- <translation>Connecté. Exécution des tests étendus.
-</translation>
+ <source>Connected. Now doing extended checks.</source>
+ <translation>Connecté. Exécution des tests étendus.</translation>
</message>
<message>
<source>Basic connectivity test failed, device is considered unusable.</source>
@@ -49893,8 +49876,8 @@ Le processus de contrôle n&apos;a pas pu démarrer.</translation>
<translation>Utiliser le transfert par défaut. Cela peut être lent.</translation>
</message>
<message>
- <source>Unknown error occurred while trying to create remote directories</source>
- <translation>Une erreur inconnue s&apos;est produite lors de la création des répertoires distants</translation>
+ <source>Unknown error occurred while trying to create remote directories.</source>
+ <translation>Une erreur inconnue s&apos;est produite lors de la création des répertoires distants.</translation>
</message>
<message>
<source>Transfer method was downgraded from &quot;%1&quot; to &quot;%2&quot;. If this is unexpected, please re-test device &quot;%3&quot;.</source>
@@ -52415,12 +52398,12 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
<translation>«&#xa0;%1&#xa0;» n&apos;est pas un exécutable.</translation>
</message>
<message>
- <source>Terminal process exited with code %1</source>
- <translation>Le processus du terminal s&apos;est terminé avec le code %1</translation>
+ <source>Terminal process exited with code %1.</source>
+ <translation>Le processus du terminal s&apos;est terminé avec le code %1.</translation>
</message>
<message>
- <source>Process exited with code: %1</source>
- <translation>Le processus s&apos;est terminé avec le code&#xa0;: %1</translation>
+ <source>Process exited with code: %1.</source>
+ <translation>Le processus s&apos;est terminé avec le code&#xa0;: %1.</translation>
</message>
<message>
<source>Copy</source>
@@ -52708,10 +52691,10 @@ En outre, Maj+Entrée insère un caractère d’échappement à la position du c
<message>
<source>Doxygen allows &quot;@&quot; and &quot;\&quot; to start commands.
By default, &quot;@&quot; is used if the surrounding comment starts with &quot;/**&quot; or &quot;///&quot;, and &quot;\&quot; is used
-if the comment starts with &quot;/*!&quot; or &quot;//!</source>
+if the comment starts with &quot;/*!&quot; or &quot;//!&quot;.</source>
<translation>Doxygen permet d&apos;utiliser «&#xa0;@&#xa0;» et «&#xa0;\&#xa0;» pour démarrer une commande.
Par défaut, «&#xa0;@&#xa0;» est utilisé si le commentaire l&apos;englobant commence avec «&#xa0;/**&#xa0;» ou «&#xa0;///&#xa0;» et «&#xa0;\&#xa0;» est utilisé
-si le commentaire débute avec «&#xa0;/*!&#xa0;» ou «&#xa0;//!&#xa0;»</translation>
+si le commentaire débute avec «&#xa0;/*!&#xa0;» ou «&#xa0;//!&#xa0;».</translation>
</message>
<message>
<source>Documentation Comments</source>
diff --git a/share/qtcreator/translations/qtcreator_hr.ts b/share/qtcreator/translations/qtcreator_hr.ts
index 6d69f112adb..ad756fc8eff 100644
--- a/share/qtcreator/translations/qtcreator_hr.ts
+++ b/share/qtcreator/translations/qtcreator_hr.ts
@@ -27563,43 +27563,35 @@ to project &quot;%2&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
+ <source>Checking &quot;%1&quot; for %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
+ <source>* Configuration found and parsed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
+ <source>* Version %1 not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
+ <source>* Failed to create: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/share/qtcreator/translations/qtcreator_ja.ts b/share/qtcreator/translations/qtcreator_ja.ts
index 71665c23d51..74f505017d7 100644
--- a/share/qtcreator/translations/qtcreator_ja.ts
+++ b/share/qtcreator/translations/qtcreator_ja.ts
@@ -39137,40 +39137,28 @@ Would you like to overwrite it?</source>
<translation>typeId が &quot;%1&quot; のページの &quot;index&quot; が無効です。</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Json ウィザードの検索パスを確認しましたが、パス &quot;%1&quot; は存在しません。
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>JSON ウィザードの検索パスを確認しましたが、パス &quot;%1&quot; は存在しません。</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>%2 向けに &quot;%1&quot; を確認しています。
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>%2 向けに &quot;%1&quot; を確認しています。</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>・&quot;%1&quot; の解析に失敗しました:%2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>・&quot;%1&quot; の解析に失敗しました:%2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>・&quot;%1&quot; に JSON オブジェクトが見つかりませんでした。
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>・&quot;%1&quot; に JSON オブジェクトが見つかりませんでした。</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>・設定が見つかり、解析しました。
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>・設定が見つかり、解析しました。</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>・バージョン %1 には未対応です。
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>・バージョン %1 には未対応です。</translation>
</message>
<message>
<source>The platform selected for the wizard.</source>
@@ -39201,16 +39189,12 @@ Would you like to overwrite it?</source>
<translation>画像ファイル &quot;%1&quot; が見つかりません。</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>・作成に失敗しました: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>・作成に失敗しました: %1</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: &quot;%1&quot; が見つかりません
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: &quot;%1&quot; が見つかりません。</translation>
</message>
<message>
<source>key not found.</source>
diff --git a/share/qtcreator/translations/qtcreator_pl.ts b/share/qtcreator/translations/qtcreator_pl.ts
index a59ebcb424c..465f3f32d3a 100644
--- a/share/qtcreator/translations/qtcreator_pl.ts
+++ b/share/qtcreator/translations/qtcreator_pl.ts
@@ -151,7 +151,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items. </source>
+ <source>Toggles if the smoothing is performed using linear interpolation method. Keeping it unchecked would follow non-smooth method using nearest neighbor. It is mostly applicable on image based items.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -33297,7 +33297,7 @@ Czy nadpisać je?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools)</source>
+ <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools).</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -33425,7 +33425,7 @@ Czy nadpisać je?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Suppresses IncrediBuild&apos;s header in the build output</source>
+ <source>Suppresses IncrediBuild&apos;s header in the build output.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -33433,7 +33433,7 @@ Czy nadpisać je?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support</source>
+ <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -33449,7 +33449,7 @@ Czy nadpisać je?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds</source>
+ <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -33457,7 +33457,7 @@ Czy nadpisać je?</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line</source>
+ <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -41748,40 +41748,28 @@ To develop a full application, create a Qt Quick Application project instead.</s
<translation>Strona z typeid &quot;%1&quot; posiada niepoprawny &quot;index&quot;.</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Ścieżka &quot;%1&quot; nie istnieje podczas sprawdzania ścieżek poszukiwań kreatora Json.
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>Ścieżka &quot;%1&quot; nie istnieje podczas sprawdzania ścieżek poszukiwań kreatora JSON.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Sprawdzanie &quot;%1&quot; dla &quot;%2&quot;.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Sprawdzanie &quot;%1&quot; dla &quot;%2&quot;.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Nie można sparsować &quot;%1&quot;:%2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Nie można sparsować &quot;%1&quot;:%2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* Nie odnaleziono obiektu JSON w &quot;%1&quot;.
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* Nie odnaleziono obiektu JSON w &quot;%1&quot;.</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* Konfiguracja odnaleziona i przeparsowana.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* Konfiguracja odnaleziona i przeparsowana.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* Wersja %1 nieobsługiwana.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* Wersja %1 nieobsługiwana.</translation>
</message>
<message>
<source>The platform selected for the wizard.</source>
@@ -41812,10 +41800,8 @@ To develop a full application, create a Qt Quick Application project instead.</s
<translation>Brak pliku graficznego &quot;%1&quot;.</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: Nie znaleziono &quot;%1&quot;
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: Nie znaleziono &quot;%1&quot;.</translation>
</message>
<message>
<source>key not found.</source>
@@ -48594,7 +48580,7 @@ Błąd uruchamiania procesu kontrolnego.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unknown error occurred while trying to create remote directories</source>
+ <source>Unknown error occurred while trying to create remote directories.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -51127,11 +51113,11 @@ Nie można otworzyć pliku &quot;%1&quot;.</translation>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Terminal process exited with code %1</source>
+ <source>Terminal process exited with code %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Process exited with code: %1</source>
+ <source>Process exited with code: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -53843,7 +53829,7 @@ po naciśnięciu klawisza backspace</translation>
<message>
<source>Doxygen allows &quot;@&quot; and &quot;\&quot; to start commands.
By default, &quot;@&quot; is used if the surrounding comment starts with &quot;/**&quot; or &quot;///&quot;, and &quot;\&quot; is used
-if the comment starts with &quot;/*!&quot; or &quot;//!</source>
+if the comment starts with &quot;/*!&quot; or &quot;//!&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts
index ac9a564f8b3..8b7bfee3dc8 100644
--- a/share/qtcreator/translations/qtcreator_ru.ts
+++ b/share/qtcreator/translations/qtcreator_ru.ts
@@ -22415,8 +22415,8 @@ Would you like to overwrite them?</source>
<translation>Максимальное количество ЦП для сборки:</translation>
</message>
<message>
- <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &apos;Visual Studio&apos; builds, but not the default for &apos;Make and Build tools&apos; or &apos;Dev Tools&apos; builds</source>
- <translation>Включение остановки выполнения при возникновении ошибки. Это поведение по умолчанию в сборках «Visual Studio», но не по умолчанию для сборок «Make and Build tools» или «Dev Tools»</translation>
+ <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &apos;Visual Studio&apos; builds, but not the default for &apos;Make and Build tools&apos; or &apos;Dev Tools&apos; builds.</source>
+ <translation>Включение остановки выполнения при возникновении ошибки. Это поведение по умолчанию в сборках «Visual Studio», но не по умолчанию для сборок «Make and Build tools» или «Dev Tools».</translation>
</message>
<message>
<source>Stop On Errors</source>
@@ -22467,7 +22467,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished">Помощник запуска:</translation>
</message>
<message>
- <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line</source>
+ <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line.</source>
<translation>Дополнительные параметры buildconsole. Значение поля будет добавлено к итоговой командной строке buildconsole.</translation>
</message>
<message>
@@ -22495,7 +22495,7 @@ Would you like to overwrite them?</source>
<translation>Исходное число задач</translation>
</message>
<message>
- <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support</source>
+ <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support.</source>
<translation>Меняет для этой сборки уровень ведения внутреннего журнала Incredibuild. Не влияет на вывод или любые доступные пользователю журналы. В основном используется для устранения проблем через службу поддержки IncrediBuild.</translation>
</message>
<message>
@@ -30999,40 +30999,28 @@ Preselects a desktop Qt for building the application if available.</source>
<translation>У страницы с typeId «%1» неверный «index».</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>При проверке путей мастера Json: путь «%1» не существует.
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>При проверке путей мастера JSON: путь «%1» не существует.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Проверяется «%1» у %2.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Проверяется «%1» у %2.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Не удалось разобрать «%1»:%2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Не удалось разобрать «%1»:%2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* Объект JSON не был найден в «%1».
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* Объект JSON не был найден в «%1».</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* Конфигурация обнаружена и разобрана.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* Конфигурация обнаружена и разобрана.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* Версия %1 не поддерживается.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* Версия %1 не поддерживается.</translation>
</message>
<message>
<source>The platform selected for the wizard.</source>
@@ -31063,16 +31051,12 @@ Preselects a desktop Qt for building the application if available.</source>
<translation>Файл изображения «%1» не найден.</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>* Не удалось создать: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>* Не удалось создать: %1</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: «%1» не найден
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: «%1» не найден.</translation>
</message>
<message>
<source>key not found.</source>
diff --git a/share/qtcreator/translations/qtcreator_sl.ts b/share/qtcreator/translations/qtcreator_sl.ts
index e5b3b87b02b..9dba0e365ae 100644
--- a/share/qtcreator/translations/qtcreator_sl.ts
+++ b/share/qtcreator/translations/qtcreator_sl.ts
@@ -7757,14 +7757,6 @@ Preselects a desktop Qt for building the application if available.</source>
<translation>oznakaTežave</translation>
</message>
<message>
- <source>Error: </source>
- <translation type="obsolete">Napaka: </translation>
- </message>
- <message>
- <source>Warning: </source>
- <translation type="obsolete">Opozorilo: </translation>
- </message>
- <message>
<source>Configuration name:</source>
<translation type="obsolete">Ime nastavitev:</translation>
</message>
diff --git a/share/qtcreator/translations/qtcreator_uk.ts b/share/qtcreator/translations/qtcreator_uk.ts
index 432f5ab3a24..bf9deb0e7ff 100644
--- a/share/qtcreator/translations/qtcreator_uk.ts
+++ b/share/qtcreator/translations/qtcreator_uk.ts
@@ -38747,40 +38747,28 @@ Preselects a desktop Qt for building the application if available.</source>
<translation>Сторінка з &quot;%1&quot; має неправильний &quot;index&quot;.</translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
- <translation>Перевірка шляхів пошуків майстра Json: шлях &quot;%1&quot; не існує.
-</translation>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
+ <translation>Перевірка шляхів пошуків майстра JSON: шлях &quot;%1&quot; не існує.</translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
- <translation>Перевірка &quot;%1&quot; для %2.
-</translation>
+ <source>Checking &quot;%1&quot; for %2.</source>
+ <translation>Перевірка &quot;%1&quot; для %2.</translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
- <translation>* Збій розбору &quot;%1&quot;:%2:%3: %4
-</translation>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
+ <translation>* Збій розбору &quot;%1&quot;:%2:%3: %4</translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
- <translation>* Не знайдено об&apos;єкт JSON в &quot;%1&quot;.
-</translation>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
+ <translation>* Не знайдено об&apos;єкт JSON в &quot;%1&quot;.</translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
- <translation>* Конфігурацію знайдено та розібрано.
-</translation>
+ <source>* Configuration found and parsed.</source>
+ <translation>* Конфігурацію знайдено та розібрано.</translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
- <translation>* Версія %1 не підтримується.
-</translation>
+ <source>* Version %1 not supported.</source>
+ <translation>* Версія %1 не підтримується.</translation>
</message>
<message>
<source>The platform selected for the wizard.</source>
@@ -38817,16 +38805,12 @@ Preselects a desktop Qt for building the application if available.</source>
</translation>
</message>
<message>
- <source>* Failed to create: %1
-</source>
- <translation>* Збій створення: %1
-</translation>
+ <source>* Failed to create: %1</source>
+ <translation>* Збій створення: %1</translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
- <translation>JsonWizard: &quot;%1&quot; не знайдено
-</translation>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
+ <translation>JsonWizard: &quot;%1&quot; не знайдено.</translation>
</message>
<message>
<source>key not found.</source>
diff --git a/share/qtcreator/translations/qtcreator_zh_CN.ts b/share/qtcreator/translations/qtcreator_zh_CN.ts
index 7526f78c968..3a1b29ef6a9 100644
--- a/share/qtcreator/translations/qtcreator_zh_CN.ts
+++ b/share/qtcreator/translations/qtcreator_zh_CN.ts
@@ -22584,7 +22584,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools)</source>
+ <source>Make sure the build command&apos;s multi-job parameter value is large enough (such as -j200 for the JOM or Make build tools).</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -22704,7 +22704,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Suppresses IncrediBuild&apos;s header in the build output</source>
+ <source>Suppresses IncrediBuild&apos;s header in the build output.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -22712,7 +22712,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support</source>
+ <source>Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -22732,7 +22732,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds</source>
+ <source>When specified, the execution will stop as soon as an error is encountered. This is the default behavior in &quot;Visual Studio&quot; builds, but not the default for &quot;Make and Build tools&quot; or &quot;Dev Tools&quot; builds.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -22740,7 +22740,7 @@ Would you like to overwrite them?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line</source>
+ <source>Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -28771,33 +28771,27 @@ Enable this if you plan to create 32-bit x86 binaries without using a dedicated
<translation type="unfinished"></translation>
</message>
<message>
- <source>Path &quot;%1&quot; does not exist when checking Json wizard search paths.
-</source>
+ <source>Path &quot;%1&quot; does not exist when checking JSON wizard search paths.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Checking &quot;%1&quot; for %2.
-</source>
+ <source>Checking &quot;%1&quot; for %2.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Failed to parse &quot;%1&quot;:%2:%3: %4
-</source>
+ <source>* Failed to parse &quot;%1&quot;:%2:%3: %4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Did not find a JSON object in &quot;%1&quot;.
-</source>
+ <source>* Did not find a JSON object in &quot;%1&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Configuration found and parsed.
-</source>
+ <source>* Configuration found and parsed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>JsonWizard: &quot;%1&quot; not found
-</source>
+ <source>JsonWizard: &quot;%1&quot; not found.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -28817,8 +28811,7 @@ Enable this if you plan to create 32-bit x86 binaries without using a dedicated
<translation type="unfinished"></translation>
</message>
<message>
- <source>* Version %1 not supported.
-</source>
+ <source>* Version %1 not supported.</source>
<translation type="unfinished"></translation>
</message>
<message>