diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2024-04-23 14:36:48 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2024-04-23 16:05:55 +0200 |
commit | ef0ee52bf92739bc5b32d70c01ff1eadd752d813 (patch) | |
tree | 0f3b2f546af088b86f21452622d77be43386cd5f /share/qtcreator | |
parent | d9c8590c5fd10b1feceb389c142ec244909739a2 (diff) | |
parent | 7dfa7469207f899e347dc6f2bf0c3011140a9b23 (diff) |
Merge remote-tracking branch 'origin/qds/dev'
Conflicts:
doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc
doc/qtcreator/src/qtquick/qtquick-live-preview-devices.qdoc
doc/qtcreator/src/qtquick/qtquick-profiler.qdoc
src/plugins/qmlprojectmanager/qmlprojectmanager.qbs
src/plugins/remotelinux/linuxdevicetester.cpp
Change-Id: I3683c1799df05209d05413383456b285a2daf96e
Diffstat (limited to 'share/qtcreator')
284 files changed, 2980 insertions, 1824 deletions
diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/Assets.qml index cfa4020995..26bef6f8e9 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 391c622048..a8eb5285f5 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 9326e6a5e3..aeabc92c6d 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 90b3021c96..fd969382e6 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsEditDelegate.qml @@ -96,6 +96,16 @@ Item { 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) + } } } } diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml index 8b4c08f845..e7997f7eae 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsToolbar.qml @@ -29,6 +29,11 @@ Rectangle { root.model.insertRow(root.model.rowCount()) } + function closeDialogs() { + addColumnDialog.reject() + fileDialog.reject() + } + RowLayout { id: container @@ -49,7 +54,7 @@ Rectangle { 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) } @@ -58,7 +63,7 @@ Rectangle { 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) } @@ -67,7 +72,7 @@ Rectangle { 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) } @@ -81,7 +86,7 @@ Rectangle { 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) } @@ -90,7 +95,7 @@ Rectangle { 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) } @@ -117,8 +122,18 @@ Rectangle { 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 { diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml index c9a6d2dbcb..2193bd1763 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionDetailsView.qml @@ -21,11 +21,19 @@ Rectangle { color: StudioTheme.Values.themeControlBackground function closeDialogs() { - editPropertyDialog.close() + 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 @@ -39,6 +47,11 @@ Rectangle { } GridLayout { + id: gridLayout + readonly property real maxAvailableHeight: topRow.maxAvailableHeight + - topRow.spacing + - toolbar.height + columns: 3 rowSpacing: 1 columnSpacing: 1 @@ -92,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) => { @@ -147,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) + } } } } @@ -174,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) } @@ -187,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)) @@ -215,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 @@ -264,7 +338,7 @@ Rectangle { Text { text: display ?? "" color: itemSelected ? StudioTheme.Values.themeInteraction - : StudioTheme.Values.themePlaceholderTextColorInteraction + : StudioTheme.Values.themeTextColor leftPadding: 5 topPadding: 3 bottomPadding: 3 @@ -297,15 +371,70 @@ Rectangle { top: itemCell.top left: itemCell.left } + Component.onCompleted: tableView.model.deselectAll() } + } - Connections { - target: tableView.model + Timer { + id: resetSizeTimer - function onModelReset() { - tableView.clearColumnWidths() - tableView.clearRowHeights() - } + interval: 100 + repeat: false + onTriggered: { + let cWidth = Math.min(tableView.maxAvailableWidth, tableView.childrenWidth) + let cHeight = Math.min(tableView.maxAvailableHeight, tableView.childrenHeight) + + if (tableView.contentWidth !== cWidth || tableView.contentHeight !== cHeight) + tableView.returnToBounds() + } + } + + Timer { + id: ensureTimer + + interval: 100 + repeat: false + onTriggered: { + tableView.ensureRowIsVisible(tableView.targetRow) + tableView.ensureColumnIsVisible(tableView.targetColumn) + } + } + + Connections { + target: tableView.model + + function onModelReset() { + root.closeDialogs() + tableView.clearColumnWidths() + tableView.clearRowHeights() + } + + function onRowsInserted(parent, first, last) { + tableView.closeEditor() + tableView.model.selectRow(first) + tableView.ensureRowIsVisible(first) + } + + function onColumnsInserted(parent, first, last) { + tableView.closeEditor() + tableView.model.selectColumn(first) + tableView.ensureColumnIsVisible(first) + } + + function onRowsRemoved(parent, first, last) { + let nextRow = first - 1 + if (nextRow < 0 && tableView.model.rowCount(parent) > 0) + nextRow = 0 + + tableView.model.selectRow(nextRow) + } + + function onColumnsRemoved(parent, first, last) { + let nextColumn = first - 1 + if (nextColumn < 0 && tableView.model.columnCount(parent) > 0) + nextColumn = 0 + + tableView.model.selectColumn(nextColumn) } } @@ -331,7 +460,7 @@ Rectangle { } HelperWidgets.IconButton { - id: addColumnContainer + id: addColumnButton iconSize:16 Layout.preferredWidth: 24 @@ -346,7 +475,7 @@ Rectangle { } HelperWidgets.IconButton { - id: addRowContainer + id: addRowButton iconSize:16 Layout.preferredWidth: tableView.width @@ -367,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 } diff --git a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml index 31ced43c1d..d963070536 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionItem.qml @@ -16,9 +16,17 @@ Item { implicitHeight: boundingRect.height + 3 property color textColor + 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 @@ -90,155 +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: CollectionEditorBackend.rootView.targetNodeSelected - 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: qsTr("Are you sure that you want to delete model \"%1\"?" - + "\nThe model will be deleted permanently.").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 index ef06a2e7a0..2b95abfc4f 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionListView.qml @@ -2,6 +2,11 @@ // 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 { @@ -10,8 +15,201 @@ ListView { 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 acf82fe452..9d483037ac 100644 --- a/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml +++ b/share/qtcreator/qmldesigner/collectionEditorQmlSource/CollectionView.qml @@ -28,6 +28,12 @@ Item { print("TODO: deleteSelectedCollection") } + function closeDialogs() { + importDialog.reject() + newCollection.reject() + warningDialog.reject() + } + ImportDialog { id: importDialog @@ -147,6 +153,8 @@ Item { } CollectionListView { // Model Groups + id: collectionListView + Layout.fillWidth: true Layout.minimumHeight: bottomSpacer.isExpanded ? 150 : 0 Layout.fillHeight: !bottomSpacer.isExpanded @@ -187,4 +195,12 @@ Item { 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 6bb1b60159..16e55acfb4 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 @@ -42,31 +56,17 @@ Row { property bool __block: false - function getColorFromEditValue() { - if (!edit) - return "white" // default color for Rectangle - - if (colorEditor.isVector3D) { - return Qt.rgba(__editColor.x, - __editColor.y, - __editColor.z, 1) - } - - return __editColor - } - 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 } } @@ -77,7 +77,7 @@ Row { // Syncing color from backend to frontend and block reflection function syncColor() { colorEditor.__block = true - colorEditor.color = colorEditor.getColorFromEditValue() + colorEditor.color = colorEditor.value hexTextField.syncColor() colorEditor.__block = false } @@ -92,7 +92,7 @@ Row { colorEditor.syncColor() } - function on__EditColorChanged() { + function onBackendValueChanged() { if (popupDialog.isSolid()) colorEditor.syncColor() } @@ -208,7 +208,7 @@ 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() } } @@ -292,5 +292,5 @@ Row { Component.onCompleted: popupDialog.determineActiveColorMode() - on__EditColorChanged: popupDialog.determineActiveColorMode() + onBackendValueChanged: popupDialog.determineActiveColorMode() } diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibrary.qml index c6db8425ff..2c98b58adc 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 93b226d6ca..0e9fc4903e 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 ca3a05bdd1..b67ec311ef 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 c21baf4c58..9a0e33b8e5 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 f74f190040..4fbeb1b8b5 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 1fac9f2234..617b724e66 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 0000000000..85123af374 --- /dev/null +++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/ContentLibraryUserView.qml @@ -0,0 +1,162 @@ +// 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: !ctxMenu.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() { + ctxMenu.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: ctxMenu + + hasModelSelection: ContentLibraryBackend.userModel.hasModelSelection + importerRunning: ContentLibraryBackend.userModel.importerRunning + + onApplyToSelected: (add) => ContentLibraryBackend.userModel.applyToSelected(ctxMenu.targetMaterial, add) + + onUnimport: root.unimport(ctxMenu.targetMaterial) + onAddToProject: ContentLibraryBackend.userModel.addToProject(ctxMenu.targetMaterial) + } + + 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: ctxMenu.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: ctxMenu.popupMenu(modelData) // TODO + } + } + } + + 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 48be045d8b..4385e3bf82 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 157012b312..005494b471 100644 --- a/share/qtcreator/qmldesigner/designericons.json +++ b/share/qtcreator/qmldesigner/designericons.json @@ -219,7 +219,7 @@ } }, "CameraSpeedConfigIcon": { - "iconName": "camera_medium" + "iconName": "cameraSpeed_medium" }, "EditColorIcon": { "iconName": "colorSelection_medium" diff --git a/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml b/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml index 2e2ff54700..b51369ffa3 100644 --- a/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml +++ b/share/qtcreator/qmldesigner/edit3dQmlSource/CameraSpeedConfigurationDialog.qml @@ -57,7 +57,7 @@ Rectangle { HelperWidgets.IconIndicator { anchors.fill: parent - icon: StudioTheme.Constants.camera_medium + icon: StudioTheme.Constants.cameraSpeed_medium pixelSize: StudioTheme.Values.myIconFontSize * 1.4 iconColor: StudioTheme.Values.themeLinkIndicatorColorHover enabled: false diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml index dda1d93ff9..305bbc7925 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposer.qml @@ -365,7 +365,7 @@ ColumnLayout { Connections { id: dragConnection target: root.draggedSec - onYChanged: root.handleDragMove() + function onYChanged() { root.handleDragMove() } } Timer { diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml index c832b2f370..c0c47f7366 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerPreview.qml @@ -21,6 +21,7 @@ Column { readonly property int updateDelay: 100 readonly property int previewMargin: 5 + readonly property int extraMargin: 200 property real previewScale: 1 @@ -246,6 +247,8 @@ Column { 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 { @@ -347,10 +350,6 @@ Column { 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 } } @@ -383,7 +382,6 @@ Column { 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 d5ac4461c4..8f98ae25b2 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectComposerTopBar.qml @@ -48,7 +48,7 @@ Rectangle { style: StudioTheme.Values.viewBarButtonStyle buttonIcon: StudioTheme.Constants.saveAs_medium tooltip: qsTr("Save current composition with a new name") - enabled: root.backendModel ? root.backendModel.isEnabled && !root.backendModel.isEmpty + enabled: root.backendModel ? root.backendModel.isEnabled && root.backendModel.currentComposition !== "" : false onClicked: root.saveAsClicked() @@ -58,7 +58,8 @@ Rectangle { style: StudioTheme.Values.viewBarButtonStyle buttonIcon: StudioTheme.Constants.assignTo_medium tooltip: qsTr("Assign current composition to selected item") - enabled: root.backendModel ? root.backendModel.isEnabled + enabled: root.backendModel ? root.backendModel.hasValidTarget + && root.backendModel.isEnabled && root.backendModel.currentComposition !== "" : false diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNode.qml index 6defa3b092..a606461b5c 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 71cbf94f8b..7c3214c5fa 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/EffectCompositionNodeUniform.qml @@ -13,9 +13,10 @@ Item { id: root height: layout.implicitHeight - visible: !uniformUseCustomValue + signal reset() + Component.onCompleted: { if (uniformType === "int") { if (uniformControlType === "channel") @@ -49,10 +50,11 @@ Item { RowLayout { id: layout - spacing: 20 anchors.fill: parent Text { + id: textName + text: uniformDisplayName color: StudioTheme.Values.themeTextColor font.pixelSize: StudioTheme.Values.baseFontSize @@ -63,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/SaveAsDialog.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/SaveAsDialog.qml index d139ba9205..65b01be457 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 diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueColor.qml index 4b00bd7613..f7482260b5 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 7348d6668b..969d7e2949 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueFloat.qml @@ -14,6 +14,10 @@ Row { 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 spinBoxIndicatorVisible: false inputHAlignment: Qt.AlignHCenter @@ -22,7 +26,7 @@ Row { value: uniformValue stepSize: .01 decimals: 2 - onValueChanged: uniformValue = value + onValueModified: uniformValue = value } StudioControls.Slider { diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml index 89f571c8cb..d67929168a 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueInt.qml @@ -14,6 +14,10 @@ Row { 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 spinBoxIndicatorVisible: false inputHAlignment: Qt.AlignHCenter @@ -22,7 +26,7 @@ Row { value: uniformValue stepSize: 1 decimals: 0 - onValueChanged: uniformValue = Math.round(value) + onValueModified: uniformValue = Math.round(value) } StudioControls.Slider { diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml index b703d5f184..adb4fe9905 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec2.qml @@ -15,6 +15,10 @@ RowLayout { 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 @@ -26,7 +30,7 @@ RowLayout { value: uniformValue.x stepSize: .01 decimals: 2 - onValueChanged: uniformValue.x = value + onValueModified: uniformValue.x = value } Item { // spacer @@ -51,6 +55,10 @@ RowLayout { 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 @@ -62,7 +70,7 @@ RowLayout { value: uniformValue.y stepSize: .01 decimals: 2 - onValueChanged: uniformValue.y = value + onValueModified: uniformValue.y = value } Item { // spacer diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml index d59b63a514..78573c48f6 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec3.qml @@ -15,6 +15,10 @@ RowLayout { 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 @@ -26,7 +30,7 @@ RowLayout { value: uniformValue.x stepSize: .01 decimals: 2 - onValueChanged: uniformValue.x = value + onValueModified: uniformValue.x = value } Item { // spacer @@ -51,6 +55,10 @@ RowLayout { 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 @@ -62,7 +70,7 @@ RowLayout { value: uniformValue.y stepSize: .01 decimals: 2 - onValueChanged: uniformValue.y = value + onValueModified: uniformValue.y = value } Item { // spacer @@ -87,6 +95,10 @@ RowLayout { 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 @@ -98,7 +110,7 @@ RowLayout { value: uniformValue.z stepSize: .01 decimals: 2 - onValueChanged: uniformValue.z = value + onValueModified: uniformValue.z = value } Item { // spacer diff --git a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml index 7e930abf81..61ce8e6389 100644 --- a/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml +++ b/share/qtcreator/qmldesigner/effectComposerQmlSources/ValueVec4.qml @@ -15,6 +15,10 @@ RowLayout { 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 @@ -26,7 +30,7 @@ RowLayout { value: uniformValue.x stepSize: .01 decimals: 2 - onValueChanged: uniformValue.x = value + onValueModified: uniformValue.x = value } Item { // spacer @@ -51,6 +55,10 @@ RowLayout { 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 @@ -62,7 +70,7 @@ RowLayout { value: uniformValue.y stepSize: .01 decimals: 2 - onValueChanged: uniformValue.y = value + onValueModified: uniformValue.y = value } Item { // spacer @@ -87,6 +95,10 @@ RowLayout { 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 @@ -98,7 +110,7 @@ RowLayout { value: uniformValue.z stepSize: .01 decimals: 2 - onValueChanged: uniformValue.z = value + onValueModified: uniformValue.z = value } Item { // spacer @@ -123,6 +135,10 @@ RowLayout { 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 @@ -134,7 +150,7 @@ RowLayout { value: uniformValue.w stepSize: .01 decimals: 2 - onValueChanged: uniformValue.w = value + 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 Binary files differnew file mode 100644 index 0000000000..6b16d81397 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png Binary files differnew file mode 100644 index 0000000000..0549a84758 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png Binary files differnew file mode 100644 index 0000000000..8876f95ae6 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/ambient-sound-24@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png Binary files differnew file mode 100644 index 0000000000..71371f97a3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png Binary files differnew file mode 100644 index 0000000000..86b80e95ab --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png Binary files differnew file mode 100644 index 0000000000..4ad2a9011b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/animated-image-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png b/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png Binary files differnew file mode 100644 index 0000000000..ff2bbbd140 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/animatedsprite-loading.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png Binary files differnew file mode 100644 index 0000000000..da40bc69a2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png Binary files differnew file mode 100644 index 0000000000..b3ebdf745b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png Binary files differnew file mode 100644 index 0000000000..476df8640f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-engine-24@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png Binary files differnew file mode 100644 index 0000000000..ecc583b859 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png Binary files differnew file mode 100644 index 0000000000..ee181f57cc --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png Binary files differnew file mode 100644 index 0000000000..2588277e53 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-listener-24@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png Binary files differnew file mode 100644 index 0000000000..6ae703de64 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png Binary files differnew file mode 100644 index 0000000000..f2133ca716 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png Binary files differnew file mode 100644 index 0000000000..9336b81b6e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-output-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png Binary files differnew file mode 100644 index 0000000000..98f245d624 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png Binary files differnew file mode 100644 index 0000000000..294d1574ae --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png Binary files differnew file mode 100644 index 0000000000..bef7f80e3e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/audio-room-24@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png Binary files differnew file mode 100644 index 0000000000..5418a0f55a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png Binary files differnew file mode 100644 index 0000000000..17f7ed0688 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png Binary files differnew file mode 100644 index 0000000000..fb4fb33910 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/border-image-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png Binary files differnew file mode 100644 index 0000000000..666d1ed93f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png Binary files differnew file mode 100644 index 0000000000..5aa57d7f48 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png Binary files differnew file mode 100644 index 0000000000..bb2278ff89 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/busyindicator-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png Binary files differnew file mode 100644 index 0000000000..c44909f6dd --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png Binary files differnew file mode 100644 index 0000000000..5c921deb13 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png Binary files differnew file mode 100644 index 0000000000..f90a1ba7dc --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/button-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png Binary files differnew file mode 100644 index 0000000000..ee669b3a88 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png Binary files differnew file mode 100644 index 0000000000..8d89eab841 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png Binary files differnew file mode 100644 index 0000000000..51c5601de0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/checkbox-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png Binary files differnew file mode 100644 index 0000000000..8d963e2bab --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png Binary files differnew file mode 100644 index 0000000000..0cd116d13c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png Binary files differnew file mode 100644 index 0000000000..3247384285 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/column-positioner-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png Binary files differnew file mode 100644 index 0000000000..2d31b17c65 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png Binary files differnew file mode 100644 index 0000000000..15fc3505ba --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png Binary files differnew file mode 100644 index 0000000000..5f82390596 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/combobox-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png Binary files differnew file mode 100644 index 0000000000..9c7df42bc7 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png Binary files differnew file mode 100644 index 0000000000..99941541c6 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png Binary files differnew file mode 100644 index 0000000000..f66349a63b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/component-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png Binary files differnew file mode 100644 index 0000000000..fd9e4e8ff3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png Binary files differnew file mode 100644 index 0000000000..31c765483e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png Binary files differnew file mode 100644 index 0000000000..22604d2492 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/control-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png Binary files differnew file mode 100644 index 0000000000..564226e949 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/default-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png Binary files differnew file mode 100644 index 0000000000..a3b6c7f6f2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png Binary files differnew file mode 100644 index 0000000000..de8906a724 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png Binary files differnew file mode 100644 index 0000000000..7ca04a01ea --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/default3d@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png Binary files differnew file mode 100644 index 0000000000..5a55bd9f77 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png Binary files differnew file mode 100644 index 0000000000..cd21394e46 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png Binary files differnew file mode 100644 index 0000000000..7beee2fab0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/delaybutton-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png Binary files differnew file mode 100644 index 0000000000..b3b63e3523 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png Binary files differnew file mode 100644 index 0000000000..8d8c7c09b0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png Binary files differnew file mode 100644 index 0000000000..22547a16b8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/dial-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png Binary files differnew file mode 100644 index 0000000000..278690f07f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png Binary files differnew file mode 100644 index 0000000000..a286efb032 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png Binary files differnew file mode 100644 index 0000000000..47abb7f9e3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/drop-area-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png Binary files differnew file mode 100644 index 0000000000..d9027813d0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png Binary files differnew file mode 100644 index 0000000000..a8a0bf65a4 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png Binary files differnew file mode 100644 index 0000000000..a2f7bf93d3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/extended-view3d-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png Binary files differnew file mode 100644 index 0000000000..bdc2253959 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png Binary files differnew file mode 100644 index 0000000000..d7ab9de8a7 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png Binary files differnew file mode 100644 index 0000000000..b28b0fa4d9 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flickable-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png Binary files differnew file mode 100644 index 0000000000..1f5f6966c0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png Binary files differnew file mode 100644 index 0000000000..cf252f08b8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flipable-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png Binary files differnew file mode 100644 index 0000000000..67be7b474d --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png Binary files differnew file mode 100644 index 0000000000..f8fa80970e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png Binary files differnew file mode 100644 index 0000000000..fc3deff849 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/flow-positioner-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png Binary files differnew file mode 100644 index 0000000000..0dff9a075d --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png Binary files differnew file mode 100644 index 0000000000..50c6f75cd8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png Binary files differnew file mode 100644 index 0000000000..b3ffdea6eb --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/focusscope-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png Binary files differnew file mode 100644 index 0000000000..32abc8bf1e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png Binary files differnew file mode 100644 index 0000000000..e5b65ad53b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png Binary files differnew file mode 100644 index 0000000000..8b876f38ec --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/frame-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png Binary files differnew file mode 100644 index 0000000000..47b34f9d14 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png Binary files differnew file mode 100644 index 0000000000..10d0b69a7b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png Binary files differnew file mode 100644 index 0000000000..4374b60e7a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/grid-positioner-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png Binary files differnew file mode 100644 index 0000000000..7457fbd7e1 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png Binary files differnew file mode 100644 index 0000000000..038a02ed86 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..af233a0df3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/gridview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png Binary files differnew file mode 100644 index 0000000000..5542ecf8bf --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png Binary files differnew file mode 100644 index 0000000000..9cf4324819 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png Binary files differnew file mode 100644 index 0000000000..80dab3c716 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/groupbox-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png Binary files differnew file mode 100644 index 0000000000..318ce0874a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png Binary files differnew file mode 100644 index 0000000000..3aa46b6106 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png Binary files differnew file mode 100644 index 0000000000..cc84918975 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/image-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png Binary files differnew file mode 100644 index 0000000000..af81cdfdb1 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png Binary files differnew file mode 100644 index 0000000000..46d3ec1dbc --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png Binary files differnew file mode 100644 index 0000000000..f05aa57c2f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/item-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png Binary files differnew file mode 100644 index 0000000000..822cf3e7b8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png Binary files differnew file mode 100644 index 0000000000..b3ed007a0e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png Binary files differnew file mode 100644 index 0000000000..cb81308ff8 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/itemdelegate-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png Binary files differnew file mode 100644 index 0000000000..6e1c9f912a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/keyframe-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png Binary files differnew file mode 100644 index 0000000000..788bef078c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png Binary files differnew file mode 100644 index 0000000000..b68d384568 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png Binary files differnew file mode 100644 index 0000000000..7001413d3b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/label-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png Binary files differnew file mode 100644 index 0000000000..5a2f3c203b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png Binary files differnew file mode 100644 index 0000000000..2657bf2181 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..b1d3fb67d2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/listview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png Binary files differnew file mode 100644 index 0000000000..29082eacf1 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png Binary files differnew file mode 100644 index 0000000000..4a2b093259 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png Binary files differnew file mode 100644 index 0000000000..750b13bd02 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/loader-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png Binary files differnew file mode 100644 index 0000000000..515287a846 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png Binary files differnew file mode 100644 index 0000000000..1b31ddc826 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png Binary files differnew file mode 100644 index 0000000000..86ae5914ac --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/media-player-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png Binary files differnew file mode 100644 index 0000000000..fe316caf8d --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png Binary files differnew file mode 100644 index 0000000000..bc8725fb5f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png Binary files differnew file mode 100644 index 0000000000..04a25e13db --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/mouse-area-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png Binary files differnew file mode 100644 index 0000000000..b5ac87e899 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png Binary files differnew file mode 100644 index 0000000000..bc6810b605 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png Binary files differnew file mode 100644 index 0000000000..23db032f4a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/page-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png Binary files differnew file mode 100644 index 0000000000..edb6b377bb --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png Binary files differnew file mode 100644 index 0000000000..0fb8967564 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png Binary files differnew file mode 100644 index 0000000000..7be0ee813b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pageindicator-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png Binary files differnew file mode 100644 index 0000000000..62ebe487ff --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png Binary files differnew file mode 100644 index 0000000000..2b8048441c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png Binary files differnew file mode 100644 index 0000000000..55bb116a69 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pane-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png Binary files differnew file mode 100644 index 0000000000..8dc82b8196 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png Binary files differnew file mode 100644 index 0000000000..a6a61f61b2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..d654a8e7e6 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/pathview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png Binary files differnew file mode 100644 index 0000000000..a023f73c30 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png Binary files differnew file mode 100644 index 0000000000..6fede21d8c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png Binary files differnew file mode 100644 index 0000000000..0069400335 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/progressbar-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png Binary files differnew file mode 100644 index 0000000000..d38170e22f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png Binary files differnew file mode 100644 index 0000000000..07b46a8ab0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png Binary files differnew file mode 100644 index 0000000000..4bbddda4b2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/radiobutton-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png Binary files differnew file mode 100644 index 0000000000..1c4c7b2948 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png Binary files differnew file mode 100644 index 0000000000..3be4624ddd --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png Binary files differnew file mode 100644 index 0000000000..aee69b3302 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rangeslider-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png Binary files differnew file mode 100644 index 0000000000..3997195f72 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png Binary files differnew file mode 100644 index 0000000000..72893106ae --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png Binary files differnew file mode 100644 index 0000000000..150fa50ea2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/rect-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png Binary files differnew file mode 100644 index 0000000000..efe3ca80b4 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png Binary files differnew file mode 100644 index 0000000000..775a57a38c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png Binary files differnew file mode 100644 index 0000000000..bb541b6711 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/repeater-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png Binary files differnew file mode 100644 index 0000000000..d4b470dc25 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png Binary files differnew file mode 100644 index 0000000000..f6f3666639 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png Binary files differnew file mode 100644 index 0000000000..4553e165e7 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/roundbutton-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png Binary files differnew file mode 100644 index 0000000000..1c5be82245 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png Binary files differnew file mode 100644 index 0000000000..a7e654c918 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png Binary files differnew file mode 100644 index 0000000000..48c99f8c0e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/row-positioner-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png Binary files differnew file mode 100644 index 0000000000..5ef73ff19f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png Binary files differnew file mode 100644 index 0000000000..f8ca7a3685 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..0eb7f9665e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/scrollview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png Binary files differnew file mode 100644 index 0000000000..bd0a9729be --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png Binary files differnew file mode 100644 index 0000000000..a08622df89 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png Binary files differnew file mode 100644 index 0000000000..93842e4cdd --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/slider-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png Binary files differnew file mode 100644 index 0000000000..676fe13404 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png Binary files differnew file mode 100644 index 0000000000..29f7f14db3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png Binary files differnew file mode 100644 index 0000000000..a518cada63 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spatial-audio-24@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png Binary files differnew file mode 100644 index 0000000000..37277c5e43 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png Binary files differnew file mode 100644 index 0000000000..f88711dd25 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png Binary files differnew file mode 100644 index 0000000000..b62a3bad51 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/spinbox-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png Binary files differnew file mode 100644 index 0000000000..a6ced34925 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png Binary files differnew file mode 100644 index 0000000000..0f19d0efa3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..9b5ef9517b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/stackview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png Binary files differnew file mode 100644 index 0000000000..031cb27c36 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png Binary files differnew file mode 100644 index 0000000000..446c469690 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png Binary files differnew file mode 100644 index 0000000000..0ccb978c46 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/swipeview-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png Binary files differnew file mode 100644 index 0000000000..e018159286 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png Binary files differnew file mode 100644 index 0000000000..9abd275659 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png Binary files differnew file mode 100644 index 0000000000..787f54ca41 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/switch-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png Binary files differnew file mode 100644 index 0000000000..068ebeef0f --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png Binary files differnew file mode 100644 index 0000000000..b96ed468cb --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png Binary files differnew file mode 100644 index 0000000000..3b7cb6d5da --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-edit-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png Binary files differnew file mode 100644 index 0000000000..29a81f5d6c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png Binary files differnew file mode 100644 index 0000000000..ee7cc512cb --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png Binary files differnew file mode 100644 index 0000000000..1df8f765de --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png Binary files differnew file mode 100644 index 0000000000..c743c22074 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png Binary files differnew file mode 100644 index 0000000000..3ceef6d037 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png Binary files differnew file mode 100644 index 0000000000..666644d2d3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/text-input-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png Binary files differnew file mode 100644 index 0000000000..f1b2dc0f84 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png Binary files differnew file mode 100644 index 0000000000..4afc1fbab5 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png Binary files differnew file mode 100644 index 0000000000..c32ecc71a9 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textarea-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png Binary files differnew file mode 100644 index 0000000000..ba5537acef --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png Binary files differnew file mode 100644 index 0000000000..c4a62a6582 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png Binary files differnew file mode 100644 index 0000000000..e05fd41b9a --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/textfield-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png Binary files differnew file mode 100644 index 0000000000..d4ecf00031 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png Binary files differnew file mode 100644 index 0000000000..31b8fed666 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/timeline-animation-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png Binary files differnew file mode 100644 index 0000000000..c675d5a707 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png Binary files differnew file mode 100644 index 0000000000..bd9419aaa0 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png Binary files differnew file mode 100644 index 0000000000..ff2d487cc9 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/timer-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png Binary files differnew file mode 100644 index 0000000000..5cb5b2e1af --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png Binary files differnew file mode 100644 index 0000000000..569373afa1 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png Binary files differnew file mode 100644 index 0000000000..fd9e6ceebc --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbar-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png Binary files differnew file mode 100644 index 0000000000..3298f69519 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png Binary files differnew file mode 100644 index 0000000000..9ab7861c25 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png Binary files differnew file mode 100644 index 0000000000..e5958cded3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolbutton-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png Binary files differnew file mode 100644 index 0000000000..5e99f06f2e --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png Binary files differnew file mode 100644 index 0000000000..68f22c5df1 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png Binary files differnew file mode 100644 index 0000000000..549c11c67c --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/toolseparator-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png Binary files differnew file mode 100644 index 0000000000..98eb8232a2 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png Binary files differnew file mode 100644 index 0000000000..ff5f95cf32 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png Binary files differnew file mode 100644 index 0000000000..236abf0cfe --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/tumbler-icon@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png Binary files differnew file mode 100644 index 0000000000..caf9c16a61 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png Binary files differnew file mode 100644 index 0000000000..df1b84e5c9 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png Binary files differnew file mode 100644 index 0000000000..4b9f31faf3 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png Binary files differnew file mode 100644 index 0000000000..f00afc52e9 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-16px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png Binary files differnew file mode 100644 index 0000000000..fd3c89c081 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png Binary files differnew file mode 100644 index 0000000000..0f651a1013 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/video-output-24px@2x.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png Binary files differnew file mode 100644 index 0000000000..22904f2f8b --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png Binary files differnew file mode 100644 index 0000000000..ac7be01bb7 --- /dev/null +++ b/share/qtcreator/qmldesigner/itemLibrary/images/webview-icon16.png diff --git a/share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo b/share/qtcreator/qmldesigner/itemLibrary/multimedia.metainfo new file mode 100644 index 0000000000..2e3616aa4b --- /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 0000000000..4bef02ddd3 --- /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 0000000000..cd4165957d --- /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 f390f72260..98e5684bdc 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 0000000000..8f00613966 --- /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 f72d21b35b..b01aa7d2a3 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/propertyEditorQmlSources/QtQuick/EffectsSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml new file mode 100644 index 0000000000..056bd5fd60 --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/EffectsSection.qml @@ -0,0 +1,490 @@ +// 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("Visibility") + visible: root.hasDesignerEffect + } + + SecondColumnLayout { + visible: root.hasDesignerEffect + + CheckBox { + text: qsTr("Visible") + 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("Visibility") } + + SecondColumnLayout { + CheckBox { + text: qsTr("Visible") + 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("Visibility") } + + SecondColumnLayout { + CheckBox { + text: qsTr("Visible") + 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: 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 { + + PropertyLabel { text: qsTr("Visibility") } + + SecondColumnLayout { + CheckBox { + text: qsTr("Visible") + 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 {} + } + } + } + } + } + + 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 60bd415a6a..aeef8a9598 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 2072f13a8e..aeaeacbd4e 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 { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/GridLayoutSpecifics.qml index 8eea143542..e6606ffe00 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 { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/RowLayoutSpecifics.qml index b4a2ced1cd..726b3783fb 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 { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/Layouts/StackLayoutSpecifics.qml index 110a8cbf1a..dc865bf128 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 95788a9ec6..7f1e6f5d46 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 a44e8c690b..11ce0e1e75 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/DoubleSpinBox.qml @@ -53,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 39176ca82a..88a0debae8 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 index 46c98f25c5..edf17374e2 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlagsComboBox.qml @@ -132,6 +132,8 @@ StudioControls.CustomComboBox { ExtendedFunctionLogic { id: extFuncLogic backendValue: root.backendValue + + onMenuVisibleChanged: root.popup.visible = false } actionIndicator.icon.color: extFuncLogic.color diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/IconButton.qml index 008320cb92..4534d3fe7d 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/Section.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Section.qml index dbbb200f73..245b8506a2 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 + + drag.target: dragButton.enabled ? section : null + drag.axis: Drag.YAxis + + onPressed: { + section.startDrag(section) + section.z = ++section.parent.z // put the dragged section on top + } - IconButton { - id: dragButton + onReleased: { + section.stopDrag() + } + } - icon: StudioTheme.Constants.dragmarks - buttonSize: 22 - iconScale: dragButton.enabled && dragButton.containsMouse ? 1.2 : 1 - transparentBg: true + 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 } @@ -320,8 +357,8 @@ Item { } onRunningChanged: { - if (!running) - enabled = false + 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 f125c459c5..04cbb78f35 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 c73e736ef4..0e42515c76 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml @@ -448,9 +448,10 @@ Row { for (var j = 0; j < myModel.length; ++j) { let item = myModel[j] if (root.hideDuplicates && nameMap.has(item.fileName)) { - // Prefer hiding imported asset files rather than other project files + // Prefer hiding generated component files rather than other project files let listIndex = nameMap.get(item.fileName) - if (comboBox.listModel.get(listIndex).absoluteFilePath.includes("/asset_imports/")) { + 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, diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml index ee2df02e04..3c74243f68 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml @@ -75,309 +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_medium: "\u005F" - readonly property string camera_small: "\u0060" - readonly property string centerHorizontal: "\u0061" - readonly property string centerVertical: "\u0062" - readonly property string cleanLogs_medium: "\u0063" - readonly property string clearList_large: "\u0064" - readonly property string clearList_medium: "\u0065" - readonly property string closeCross: "\u0066" - readonly property string closeFile_large: "\u0067" - readonly property string closeLink: "\u0068" - readonly property string close_small: "\u0069" - readonly property string code: "\u006A" - readonly property string codeEditor_medium: "\u006B" - readonly property string codeview_medium: "\u006C" - readonly property string colorPopupClose: "\u006D" - readonly property string colorSelection_medium: "\u006E" - readonly property string columnsAndRows: "\u006F" - readonly property string comboBox_medium: "\u0070" - readonly property string cone_medium: "\u0071" - readonly property string cone_small: "\u0072" - readonly property string connection_small: "\u0073" - readonly property string connections_medium: "\u0074" - readonly property string copyLink: "\u0075" - readonly property string copyStyle: "\u0076" - readonly property string copy_small: "\u0077" - readonly property string cornerA: "\u0078" - readonly property string cornerB: "\u0079" - readonly property string cornersAll: "\u007A" - readonly property string createComponent_large: "\u007B" - readonly property string createComponent_small: "\u007C" - readonly property string createObject_medium: "\u007D" - readonly property string create_medium: "\u007E" - readonly property string create_small: "\u007F" - readonly property string cube_medium: "\u0080" - readonly property string cube_small: "\u0081" - readonly property string curveDesigner: "\u0082" - readonly property string curveDesigner_medium: "\u0083" - readonly property string curveEditor: "\u0084" - readonly property string customMaterialEditor: "\u0085" - readonly property string cylinder_medium: "\u0086" - readonly property string cylinder_small: "\u0087" - readonly property string decisionNode: "\u0088" - readonly property string deleteColumn: "\u0089" - readonly property string deleteMaterial: "\u008A" - readonly property string deleteRow: "\u008B" - readonly property string deleteTable: "\u008C" - readonly property string delete_medium: "\u008D" - readonly property string delete_small: "\u008E" - readonly property string deletecolumn_medium: "\u008F" - readonly property string deletepermanently_medium: "\u0090" - readonly property string deleterow_medium: "\u0091" - readonly property string designMode_large: "\u0092" - readonly property string detach: "\u0093" - readonly property string directionalLight_small: "\u0094" - readonly property string distributeBottom: "\u0095" - readonly property string distributeCenterHorizontal: "\u0096" - readonly property string distributeCenterVertical: "\u0097" - readonly property string distributeLeft: "\u0098" - readonly property string distributeOriginBottomRight: "\u0099" - readonly property string distributeOriginCenter: "\u009A" - readonly property string distributeOriginNone: "\u009B" - readonly property string distributeOriginTopLeft: "\u009D" - readonly property string distributeRight: "\u009E" - readonly property string distributeSpacingHorizontal: "\u009F" - readonly property string distributeSpacingVertical: "\u00A0" - readonly property string distributeTop: "\u00A1" - readonly property string download: "\u00A2" - readonly property string downloadUnavailable: "\u00A3" - readonly property string downloadUpdate: "\u00A4" - readonly property string downloaded: "\u00A5" - readonly property string dragmarks: "\u00A6" - readonly property string duplicate_small: "\u00A7" - readonly property string edit: "\u00A8" - readonly property string editComponent_large: "\u00A9" - readonly property string editComponent_small: "\u00AA" - readonly property string editLightOff_medium: "\u00AB" - readonly property string editLightOn_medium: "\u00AC" - readonly property string edit_medium: "\u00AE" - readonly property string edit_small: "\u00AF" - readonly property string effects: "\u00B0" - readonly property string events_small: "\u00B1" - readonly property string export_medium: "\u00B2" - readonly property string eyeDropper: "\u00B3" - readonly property string favorite: "\u00B4" - readonly property string fitAll_medium: "\u00B5" - readonly property string fitSelected_small: "\u00B6" - readonly property string fitSelection_medium: "\u00B7" - readonly property string fitToView_medium: "\u00B8" - readonly property string flowAction: "\u00B9" - readonly property string flowTransition: "\u00BA" - readonly property string fontStyleBold: "\u00BB" - readonly property string fontStyleItalic: "\u00BC" - readonly property string fontStyleStrikethrough: "\u00BD" - readonly property string fontStyleUnderline: "\u00BE" - readonly property string forward_medium: "\u00BF" - readonly property string globalOrient_medium: "\u00C0" - readonly property string gradient: "\u00C1" - readonly property string gridView: "\u00C2" - readonly property string grid_medium: "\u00C3" - readonly property string group_small: "\u00C4" - readonly property string help: "\u00C5" - readonly property string home_large: "\u00C6" - readonly property string idAliasOff: "\u00C7" - readonly property string idAliasOn: "\u00C8" - readonly property string import_medium: "\u00C9" - readonly property string imported: "\u00CA" - readonly property string importedModels_small: "\u00CB" - readonly property string infinity: "\u00CC" - readonly property string invisible_medium: "\u00CD" - readonly property string invisible_small: "\u00CE" - readonly property string jumpToCode_medium: "\u00CF" - readonly property string jumpToCode_small: "\u00D0" - readonly property string keyframe: "\u00D1" - readonly property string languageList_medium: "\u00D2" - readonly property string layouts_small: "\u00D3" - readonly property string lights_small: "\u00D4" - readonly property string linear_medium: "\u00D5" - readonly property string linkTriangle: "\u00D6" - readonly property string linked: "\u00D7" - readonly property string listView: "\u00D8" - readonly property string listView_medium: "\u00D9" - readonly property string list_medium: "\u00DA" - readonly property string localOrient_medium: "\u00DB" - readonly property string lockOff: "\u00DC" - readonly property string lockOn: "\u00DD" - readonly property string loopPlayback_medium: "\u00DE" - readonly property string materialBrowser_medium: "\u00DF" - readonly property string materialPreviewEnvironment: "\u00E0" - readonly property string materialPreviewModel: "\u00E1" - readonly property string material_medium: "\u00E2" - readonly property string maxBar_small: "\u00E3" - readonly property string mergeCells: "\u00E4" - readonly property string merge_small: "\u00E5" - readonly property string minus: "\u00E6" - readonly property string mirror: "\u00E7" - readonly property string more_medium: "\u00E8" - readonly property string mouseArea_small: "\u00E9" - readonly property string moveDown_medium: "\u00EA" - readonly property string moveInwards_medium: "\u00EB" - readonly property string moveUp_medium: "\u00EC" - readonly property string moveUpwards_medium: "\u00ED" - readonly property string move_medium: "\u00EE" - readonly property string newMaterial: "\u00EF" - readonly property string nextFile_large: "\u00F0" - readonly property string normalBar_small: "\u00F1" - readonly property string openLink: "\u00F2" - readonly property string openMaterialBrowser: "\u00F3" - readonly property string orientation: "\u00F4" - readonly property string orthCam_medium: "\u00F5" - readonly property string orthCam_small: "\u00F6" - readonly property string paddingEdge: "\u00F7" - readonly property string paddingFrame: "\u00F8" - readonly property string particleAnimation_medium: "\u00F9" - readonly property string pasteStyle: "\u00FA" - readonly property string paste_small: "\u00FB" - readonly property string pause: "\u00FC" - readonly property string pause_medium: "\u00FD" - readonly property string perspectiveCam_medium: "\u00FE" - readonly property string perspectiveCam_small: "\u00FF" - readonly property string pin: "\u0100" - readonly property string plane_medium: "\u0101" - readonly property string plane_small: "\u0102" - readonly property string play: "\u0103" - readonly property string playFill_medium: "\u0104" - readonly property string playOutline_medium: "\u0105" - readonly property string plus: "\u0106" - readonly property string pointLight_small: "\u0107" - readonly property string positioners_small: "\u0108" - readonly property string previewEnv_medium: "\u0109" - readonly property string previousFile_large: "\u010A" - readonly property string promote: "\u010B" - readonly property string properties_medium: "\u010C" - readonly property string readOnly: "\u010D" - readonly property string recent_medium: "\u010E" - readonly property string recordFill_medium: "\u010F" - readonly property string recordOutline_medium: "\u0110" - readonly property string redo: "\u0111" - readonly property string reload_medium: "\u0112" - readonly property string remove_medium: "\u0113" - readonly property string remove_small: "\u0114" - readonly property string rename_small: "\u0115" - readonly property string replace_small: "\u0116" - readonly property string resetView_small: "\u0117" - readonly property string restartParticles_medium: "\u0118" - readonly property string reverseOrder_medium: "\u0119" - readonly property string roatate_medium: "\u011A" - readonly property string rotationFill: "\u011B" - readonly property string rotationOutline: "\u011C" - readonly property string runProjFill_large: "\u011D" - readonly property string runProjOutline_large: "\u011E" - readonly property string s_anchors: "\u011F" - readonly property string s_annotations: "\u0120" - readonly property string s_arrange: "\u0121" - readonly property string s_boundingBox: "\u0122" - readonly property string s_component: "\u0123" - readonly property string s_connections: "\u0124" - readonly property string s_edit: "\u0125" - readonly property string s_enterComponent: "\u0126" - readonly property string s_eventList: "\u0127" - readonly property string s_group: "\u0128" - readonly property string s_layouts: "\u0129" - readonly property string s_merging: "\u012A" - readonly property string s_mouseArea: "\u012B" - readonly property string s_positioners: "\u012C" - readonly property string s_selection: "\u012D" - readonly property string s_snapping: "\u012E" - readonly property string s_timeline: "\u012F" - readonly property string s_visibility: "\u0130" - readonly property string saveAs_medium: "\u0131" - readonly property string saveLogs_medium: "\u0132" - readonly property string save_medium: "\u0133" - readonly property string scale_medium: "\u0134" - readonly property string search: "\u0135" - readonly property string search_small: "\u0136" - readonly property string sectionToggle: "\u0137" - readonly property string selectFill_medium: "\u0138" - readonly property string selectOutline_medium: "\u0139" - readonly property string selectParent_small: "\u013A" - readonly property string selection_small: "\u013B" - readonly property string settings_medium: "\u013C" - readonly property string signal_small: "\u013D" - readonly property string snapping_conf_medium: "\u013E" - readonly property string snapping_medium: "\u013F" - readonly property string snapping_small: "\u0140" - readonly property string sortascending_medium: "\u0141" - readonly property string sortdescending_medium: "\u0142" - readonly property string sphere_medium: "\u0143" - readonly property string sphere_small: "\u0144" - readonly property string splitColumns: "\u0145" - readonly property string splitRows: "\u0146" - readonly property string splitScreen_medium: "\u0147" - readonly property string spotLight_small: "\u0148" - readonly property string stackedContainer_small: "\u0149" - readonly property string startNode: "\u014A" - readonly property string step_medium: "\u014B" - readonly property string stop_medium: "\u014C" - readonly property string tableView_medium: "\u014D" - readonly property string testIcon: "\u014E" - readonly property string textAlignBottom: "\u014F" - readonly property string textAlignCenter: "\u0150" - readonly property string textAlignJustified: "\u0151" - readonly property string textAlignLeft: "\u0152" - readonly property string textAlignMiddle: "\u0153" - readonly property string textAlignRight: "\u0154" - readonly property string textAlignTop: "\u0155" - readonly property string textBulletList: "\u0156" - readonly property string textFullJustification: "\u0157" - readonly property string textNumberedList: "\u0158" - readonly property string textures_medium: "\u0159" - readonly property string tickIcon: "\u015A" - readonly property string tickMark_small: "\u015B" - readonly property string timeline_small: "\u015C" - readonly property string toEndFrame_medium: "\u015D" - readonly property string toNextFrame_medium: "\u015E" - readonly property string toPrevFrame_medium: "\u015F" - readonly property string toStartFrame_medium: "\u0160" - readonly property string topToolbar_annotations: "\u0161" - readonly property string topToolbar_closeFile: "\u0162" - readonly property string topToolbar_designMode: "\u0163" - readonly property string topToolbar_enterComponent: "\u0164" - readonly property string topToolbar_home: "\u0165" - readonly property string topToolbar_makeComponent: "\u0166" - readonly property string topToolbar_navFile: "\u0167" - readonly property string topToolbar_runProject: "\u0168" - readonly property string translationCreateFiles: "\u0169" - readonly property string translationCreateReport: "\u016A" - readonly property string translationExport: "\u016B" - readonly property string translationImport: "\u016C" - readonly property string translationSelectLanguages: "\u016D" - readonly property string translationTest: "\u016E" - readonly property string transparent: "\u016F" - readonly property string triState: "\u0170" - readonly property string triangleArcA: "\u0171" - readonly property string triangleArcB: "\u0172" - readonly property string triangleCornerA: "\u0173" - readonly property string triangleCornerB: "\u0174" - readonly property string unLinked: "\u0175" - readonly property string undo: "\u0176" - readonly property string unify_medium: "\u0177" - readonly property string unpin: "\u0178" - readonly property string upDownIcon: "\u0179" - readonly property string upDownSquare2: "\u017A" - readonly property string updateAvailable_medium: "\u017B" - readonly property string updateContent_medium: "\u017C" - readonly property string visibilityOff: "\u017D" - readonly property string visibilityOn: "\u017E" - readonly property string visible_medium: "\u017F" - readonly property string visible_small: "\u0180" - readonly property string warning_medium: "\u0181" - readonly property string wildcard: "\u0182" - readonly property string wizardsAutomotive: "\u0183" - readonly property string wizardsDesktop: "\u0184" - readonly property string wizardsGeneric: "\u0185" - readonly property string wizardsMcuEmpty: "\u0186" - readonly property string wizardsMcuGraph: "\u0187" - readonly property string wizardsMobile: "\u0188" - readonly property string wizardsUnknown: "\u0189" - readonly property string zoomAll: "\u018A" - readonly property string zoomIn: "\u018B" - readonly property string zoomIn_medium: "\u018C" - readonly property string zoomOut: "\u018D" - readonly property string zoomOut_medium: "\u018E" - readonly property string zoomSelection: "\u018F" + 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 59030cd126..1a04c8ebc3 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml @@ -251,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 diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf Binary files differindex 714cd4b753..cdce3eeefd 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf 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 f77f7d99c9..996d474208 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 47ca3af299..e7e86e9ffa 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 42d0bf748c..a5d0d7539c 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": [ { @@ -278,6 +280,14 @@ 'TargetQuickVersion': '6.6', 'TargetQuick3DVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7', + 'TargetQuick3DVersion': '6.7' + })" } ] } @@ -298,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 index 2b26fe3f0c..41d562fb53 100644 --- 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 @@ -19,7 +19,7 @@ Rectangle { color: Constants.backgroundColor View3D { - id: view3D + id: extendedView3D anchors.fill: parent environment: sceneEnvironment 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 index 101d5c6903..5f2e5bfcaf 100644 --- a/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-3d/wizard.json +++ b/share/qtcreator/qmldesigner/studio_templates/projects/application-extended-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,34 +238,10 @@ "type": "ComboBox", "data": { - "index": 3, + "index": 2, "items": [ { - "trKey": "Qt 6.2", - "value": - "({ - 'TargetQuickVersion': '6.2', - 'TargetQuick3DVersion': '6.2' - })" - }, - { - "trKey": "Qt 6.3", - "value": - "({ - 'TargetQuickVersion': '6.3', - 'TargetQuick3DVersion': '6.3' - })" - }, - { - "trKey": "Qt 6.4", - "value": - "({ - 'TargetQuickVersion': '6.4', - 'TargetQuick3DVersion': '6.4' - })" - }, - { "trKey": "Qt 6.5", "value": "({ @@ -278,6 +256,14 @@ 'TargetQuickVersion': '6.6', 'TargetQuick3DVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7', + 'TargetQuick3DVersion': '6.7' + })" } ] } @@ -298,98 +284,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/wizard.json b/share/qtcreator/qmldesigner/studio_templates/projects/application/wizard.json index c8b74dec49..41fe2df289 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": [ { @@ -280,6 +282,13 @@ "({ 'TargetQuickVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7' + })" } ] } @@ -300,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 a5a4360e3f..0000000000 --- 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 418f6d7719..0000000000 --- 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 eb621ef219..0000000000 --- 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 75aeae6714..6d346818e4 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,7 +108,7 @@ Project { @endif /* List of plugin directories passed to QML runtime */ - importPaths: [ "imports", "asset_imports" ] + importPaths: [ "." ] /* Required for deployment */ targetDirectory: "/opt/%{ProjectName}" @@ -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 e1f7ec2e23..0000000000 --- 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 ac0b0b28c0..0000000000 --- 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 167481d7c7..0000000000 --- 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 BUILD_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 f9700ff452..0000000000 --- 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 8245e31f0d..0000000000 --- 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 915d08462e..0000000000 --- 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 2c4f857df3..0000000000 --- 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 2e940be032..0000000000 --- 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 5a22661b5a..0000000000 --- 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 9c7633fb0a..0000000000 --- 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 01a603eb9d..ddaf502154 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')}" }, @@ -298,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 d521cc201e..585a73aa90 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": [ { @@ -237,6 +239,13 @@ "({ 'TargetQuickVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7' + })" } ] } @@ -257,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 17cd30d507..a44a1429be 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": [ { @@ -235,6 +237,13 @@ "({ 'TargetQuickVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7' + })" } ] } @@ -254,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 37710ae91d..b3f70a8b79 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": [ { @@ -235,6 +237,13 @@ "({ 'TargetQuickVersion': '6.6' })" + }, + { + "trKey": "Qt 6.7", + "value": + "({ + 'TargetQuickVersion': '6.7' + })" } ] } @@ -254,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/Constants.qml.tpl b/share/qtcreator/qmldesigner/studio_templates/projects/shared-plugin/name/Constants.qml.tpl index cc5da7be55..35aa48896b 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 677fe05428..56ecc9f2f8 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/toolbar/Main.qml b/share/qtcreator/qmldesigner/toolbar/Main.qml index 7235028df6..88a9bd744a 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 diff --git a/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml b/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml index 73b023bddc..555596223b 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 |