Merge "Merge remote-tracking branch 'origin/qds/dev'"

This commit is contained in:
The Qt Project
2024-01-18 12:32:01 +00:00
242 changed files with 6226 additions and 870 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -162,7 +162,7 @@
Now the emulator runs, the qtdesignviewer APK delivered with the \QDS installation Now the emulator runs, the qtdesignviewer APK delivered with the \QDS installation
is uploaded, and the project is uploaded and shown in the emulator. is uploaded, and the project is uploaded and shown in the emulator.
\image qtds-running-emulator.png \image qtds-running-emulator.webp
Note the following: Note the following:
\list \list

View File

@@ -124,10 +124,14 @@
\li Purpose \li Purpose
\row \row
\li \uicontrol ID \li \uicontrol ID
\li \QBF automatically proposes identifiers for all groups and layers. \li \QBF automatically derives identifiers for all groups and layers
from layer name.
You can change them in this field. Use unique and descriptive IDs You can change them in this field. Use unique and descriptive IDs
to avoid duplicate IDs when the layer and the respective artwork to avoid duplicate IDs when the layer and the respective artwork
are imported into \QDS. are imported into \QDS.
\note Once the ID is edited, the automatic assignment of ID from
layer name stops for this layer. Use \inlineimage figma-binding-reset.png
button next to \uicontrol ID to reset the ID back to automatic assignment.
\row \row
\li \uicontrol {Export as} \li \uicontrol {Export as}
\li Determines how to export the group or layer: \li Determines how to export the group or layer:
@@ -146,6 +150,8 @@
into one component. into one component.
\li \uicontrol Skipped completely skips the selected layer. \li \uicontrol Skipped completely skips the selected layer.
\endlist \endlist
\note Use \inlineimage figma-binding-reset.png button next to
\uicontrol {Export as} to reset to default value.
\row \row
\li \uicontrol {Custom Component Type} \li \uicontrol {Custom Component Type}
\li Determines the \l{Component Types}{component type} to morph this \li Determines the \l{Component Types}{component type} to morph this
@@ -205,13 +211,8 @@
\li Exports the component generated from this layer as an alias in the \li Exports the component generated from this layer as an alias in the
parent component. parent component.
\row \row
\li \uicontrol Visible \li \uicontrol {Start Screen}
\li Determines the visibility of the layer. \li Sets the component to be the starting component in \QDS project.
\row
\li \uicontrol Clip
\li Enables clipping in the component generated from the layer. The
generated component will clip its own painting, as well as the
painting of its children, to its bounding rectangle.
\endtable \endtable
\section2 Settings \section2 Settings
@@ -239,6 +240,10 @@
\li \uicontrol {Export as shapes} \li \uicontrol {Export as shapes}
\li Exports vectors as components of the type \l{SVG Path Item} from the \li Exports vectors as components of the type \l{SVG Path Item} from the
Qt Quick Studio Components module. Qt Quick Studio Components module.
\row
\li \uicontrol {Create page hierarchy}
\li Organize the generated UI in \QDS under the directory named after the
parent page of the respective component.
\row \row
\li \uicontrol {Reset plugin data} \li \uicontrol {Reset plugin data}
\li Resets all settings for all layers and groups (also in the \li Resets all settings for all layers and groups (also in the

View File

@@ -278,6 +278,14 @@
\note The factor is independent of the asset scale settings, that is, 2x assets shall \note The factor is independent of the asset scale settings, that is, 2x assets shall
have a size of 5x when a scale factor of 2.5 is selected. have a size of 5x when a scale factor of 2.5 is selected.
\section1 Organizing
Select the \uicontrol {Organize output in pages} to organize the generated UI inside
the directory named after the parent page of the respective component. The default behavior
is to generate UI inside the directory selected during import in \QDS.
\note Using invalid characters or reservered file names for the page name will result into
imports errors as page name is used for the directory name to organize the UI files in \QDS .
\section1 Exporting Library Symbols \section1 Exporting Library Symbols
\QBSK can handle symbols used from a local library. Before you use \QBSK to export a document \QBSK can handle symbols used from a local library. Before you use \QBSK to export a document

View File

@@ -224,6 +224,12 @@
workspace, select it in the list. workspace, select it in the list.
\li \li
\li \l{Managing Workspaces} \li \l{Managing Workspaces}
\row
\li \inlineimage icons/lockoff.png
/ \inlineimage icons/lockon.png
\li Toggles the views to locked or movable in \QDS.
\li
\li \l{Managing Workspaces}
\row \row
\li \uicontrol Share \li \uicontrol Share
\li Shares the application online using Qt Design Viewer. \li Shares the application online using Qt Design Viewer.

View File

@@ -14,10 +14,11 @@
To detach views: To detach views:
\list \list
\li Toggle \inlineimage icons/lockon.png
to \inlineimage icons/lockoff.png
at the top toolbar.
\li Double-click the title bar of the view. \li Double-click the title bar of the view.
\li Start dragging the view to another position. \li Start dragging the view to another position.
\li Select the \inlineimage icons/detach-group-icon.png
(\uicontrol {Detach Group}) button.
\endlist \endlist
You can move detached views or groups of views anywhere on the screen. You can move detached views or groups of views anywhere on the screen.
@@ -32,6 +33,11 @@
To open closed views, select \uicontrol View > \uicontrol Views. To open closed views, select \uicontrol View > \uicontrol Views.
\note To lock all views, toggle
\inlineimage icons/lockoff.png
to \inlineimage icons/lockon.png
at the top toolbar.
\section1 Saving Workspaces \section1 Saving Workspaces
The changes you make to a workspace are saved when you exit \QDS. The changes you make to a workspace are saved when you exit \QDS.

View File

@@ -60,7 +60,8 @@ def get_arguments():
parser.add_argument('--no-cdb', parser.add_argument('--no-cdb',
help='Skip cdbextension and the python dependency packaging step (Windows)', help='Skip cdbextension and the python dependency packaging step (Windows)',
action='store_true', default=(not common.is_windows_platform())) action='store_true', default=(not common.is_windows_platform()))
parser.add_argument('--no-qbs', help='Skip building Qbs as part of Qt Creator', action='store_true', default=False); parser.add_argument('--no-qbs', help='Skip building Qbs as part of Qt Creator',
action='store_true', default=False);
parser.add_argument('--no-docs', help='Skip documentation generation', parser.add_argument('--no-docs', help='Skip documentation generation',
action='store_true', default=False) action='store_true', default=False)
parser.add_argument('--no-build-date', help='Does not show build date in about dialog, for reproducible builds', parser.add_argument('--no-build-date', help='Does not show build date in about dialog, for reproducible builds',
@@ -75,6 +76,8 @@ def get_arguments():
action='store_true', default=False) action='store_true', default=False)
parser.add_argument('--with-cpack', help='Create packages with cpack', parser.add_argument('--with-cpack', help='Create packages with cpack',
action='store_true', default=False) action='store_true', default=False)
parser.add_argument('--with-sdk-tool', help='Builds a internal sdk-tool (not standalone) which is used in Qt Design Studio builds',
action='store_true', default=False)
parser.add_argument('--add-path', help='Prepends a CMAKE_PREFIX_PATH to the build', parser.add_argument('--add-path', help='Prepends a CMAKE_PREFIX_PATH to the build',
action='append', dest='prefix_paths', default=[]) action='append', dest='prefix_paths', default=[])
parser.add_argument('--add-module-path', help='Prepends a CMAKE_MODULE_PATH to the build', parser.add_argument('--add-module-path', help='Prepends a CMAKE_MODULE_PATH to the build',
@@ -171,7 +174,7 @@ def build_qtcreator(args, paths):
'-DWITH_DOCS=' + cmake_option(not args.no_docs), '-DWITH_DOCS=' + cmake_option(not args.no_docs),
'-DBUILD_QBS=' + cmake_option(build_qbs), '-DBUILD_QBS=' + cmake_option(build_qbs),
'-DBUILD_DEVELOPER_DOCS=' + cmake_option(not args.no_docs), '-DBUILD_DEVELOPER_DOCS=' + cmake_option(not args.no_docs),
'-DBUILD_EXECUTABLE_SDKTOOL=OFF', '-DBUILD_EXECUTABLE_SDKTOOL=' + cmake_option(args.with_sdk_tool),
'-DQTC_FORCE_XCB=ON', '-DQTC_FORCE_XCB=ON',
'-DWITH_TESTS=' + cmake_option(args.with_tests)] '-DWITH_TESTS=' + cmake_option(args.with_tests)]
cmake_args += common_cmake_arguments(args) cmake_args += common_cmake_arguments(args)

View File

@@ -147,15 +147,15 @@ def package(args, paths):
if common.is_windows_platform() and args.sign_command: if common.is_windows_platform() and args.sign_command:
command = shlex.split(args.sign_command) command = shlex.split(args.sign_command)
common.check_print_call(command + [paths.install]) common.check_print_call(command + [paths.install])
common.check_print_call(['7z', 'a', '-mmt2', os.path.join(paths.result, args.name + '.7z'), '*'], common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, os.path.join(paths.result, args.name + '.7z'), '*'],
paths.install) paths.install)
if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel
common.check_print_call(['7z', 'a', '-mmt2', common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
os.path.join(paths.result, args.name + '_dev.7z'), '*'], os.path.join(paths.result, args.name + '_dev.7z'), '*'],
paths.dev_install) paths.dev_install)
# check for existence - the DebugInfo install target doesn't work for telemetry plugin # check for existence - the DebugInfo install target doesn't work for telemetry plugin
if args.with_debug_info and os.path.exists(paths.debug_install): if args.with_debug_info and os.path.exists(paths.debug_install):
common.check_print_call(['7z', 'a', '-mmt2', common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
os.path.join(paths.result, args.name + '-debug.7z'), '*'], os.path.join(paths.result, args.name + '-debug.7z'), '*'],
paths.debug_install) paths.debug_install)
if common.is_mac_platform() and common.codesign_call(): if common.is_mac_platform() and common.codesign_call():

View File

@@ -3,7 +3,6 @@
import QtQuick import QtQuick
import CollectionDetails 1.0 as CollectionDetails import CollectionDetails 1.0 as CollectionDetails
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls import StudioControls 1.0 as StudioControls
import StudioHelpers as StudioHelpers import StudioHelpers as StudioHelpers
import StudioTheme 1.0 as StudioTheme import StudioTheme 1.0 as StudioTheme
@@ -11,119 +10,106 @@ import QtQuick.Templates as T
Item { Item {
id: root id: root
required property var columnType required property var columnType
property var __modifier : textEditor
property bool __changesAccepted: true
TableView.onCommit: { TableView.onCommit: {
if (root.__changesAccepted) if (editorLoader.changesAccepted && edit !== editorLoader.acceptedValue)
edit = __modifier.editor.editValue edit = editorLoader.acceptedValue
}
Component.onCompleted: {
__changesAccepted = true
if (edit && edit !== "")
root.__modifier.editor.editValue = edit
} }
onActiveFocusChanged: { onActiveFocusChanged: {
if (root.activeFocus) if (root.activeFocus && !editorLoader.triggered && editorLoader.item) {
root.__modifier.editor.forceActiveFocus() editorLoader.triggered = true
} editorLoader.item.open()
Connections {
id: modifierFocusConnection
target: root.__modifier.editor
function onActiveFocusChanged() {
if (!modifierFocusConnection.target.activeFocus)
root.TableView.commit()
}
}
EditorPopup {
id: textEditor
editor: textField
StudioControls.TextField {
id: textField
property alias editValue: textField.text
actionIndicator.visible: false
translationIndicatorVisible: false
onRejected: root.__changesAccepted = false
}
}
EditorPopup {
id: numberEditor
editor: numberField
StudioControls.RealSpinBox {
id: numberField
property alias editValue: numberField.realValue
actionIndicator.visible: false
realFrom: -9e9
realTo: 9e9
realStepSize: 1.0
decimals: 6
}
}
EditorPopup {
id: boolEditor
editor: boolField
StudioControls.CheckBox {
id: boolField
property alias editValue: boolField.checked
actionIndicatorVisible: false
}
}
EditorPopup {
id: colorEditor
editor: colorPicker
implicitHeight: colorPicker.height + topPadding + bottomPadding
implicitWidth: colorPicker.width + leftPadding + rightPadding
padding: 8
StudioHelpers.ColorBackend {
id: colorBackend
} }
StudioControls.ColorEditorPopup { // active focus should be checked again, because it might be affected by editorLoader.item
id: colorPicker if (root.activeFocus && editorLoader.editor)
editorLoader.editor.forceActiveFocus()
}
property alias editValue: colorBackend.color Loader {
color: colorBackend.color id: editorLoader
width: 200 active: true
Keys.onEnterPressed: colorPicker.focus = false property var editor: editorLoader.item ? editorLoader.item.editor : null
property var editValue: editorLoader.editor ? editorLoader.editor.editValue : null
property var acceptedValue: null
property bool changesAccepted: true
property bool triggered: false
onActivateColor: function(color) { Connections {
colorBackend.activateColor(color) id: modifierFocusConnection
target: editorLoader.editor
enabled: editorLoader.item !== undefined
function onActiveFocusChanged() {
if (!modifierFocusConnection.target.activeFocus) {
editorLoader.acceptedValue = editorLoader.editValue
root.TableView.commit()
}
} }
} }
background: Rectangle { Component {
color: StudioTheme.Values.themeControlBackgroundInteraction id: textEditor
border.color: StudioTheme.Values.themeInteraction
border.width: StudioTheme.Values.border EditorPopup {
editor: textField
StudioControls.TextField {
id: textField
property alias editValue: textField.text
actionIndicator.visible: false
translationIndicatorVisible: false
onRejected: editorLoader.changesAccepted = false
}
}
}
Component {
id: numberEditor
EditorPopup {
editor: numberField
StudioControls.RealSpinBox {
id: numberField
property alias editValue: numberField.realValue
actionIndicator.visible: false
realFrom: -9e9
realTo: 9e9
realStepSize: 1.0
decimals: 6
trailingZeroes: false
}
}
}
Component {
id: boolEditor
EditorPopup {
editor: boolField
StudioControls.CheckBox {
id: boolField
property alias editValue: boolField.checked
actionIndicatorVisible: false
}
}
} }
} }
@@ -135,7 +121,7 @@ Item {
implicitHeight: contentHeight implicitHeight: contentHeight
implicitWidth: contentWidth implicitWidth: contentWidth
enabled: visible focus: true
visible: false visible: false
Connections { Connections {
@@ -144,6 +130,8 @@ Item {
function onActiveFocusChanged() { function onActiveFocusChanged() {
if (!editorPopup.editor.activeFocus) if (!editorPopup.editor.activeFocus)
editorPopup.close() editorPopup.close()
else if (edit)
editorPopup.editor.editValue = edit
} }
} }
@@ -151,7 +139,7 @@ Item {
target: editorPopup.editor.Keys target: editorPopup.editor.Keys
function onEscapePressed() { function onEscapePressed() {
root.__changesAccepted = false editorLoader.changesAccepted = false
editorPopup.close() editorPopup.close()
} }
} }
@@ -165,14 +153,8 @@ Item {
&& columnType !== CollectionDetails.DataType.Number && columnType !== CollectionDetails.DataType.Number
PropertyChanges { PropertyChanges {
target: root target: editorLoader
__modifier: textEditor sourceComponent: textEditor
}
PropertyChanges {
target: textEditor
visible: true
focus: true
} }
}, },
State { State {
@@ -180,14 +162,8 @@ Item {
when: columnType === CollectionDetails.DataType.Number when: columnType === CollectionDetails.DataType.Number
PropertyChanges { PropertyChanges {
target: root target: editorLoader
__modifier: numberEditor sourceComponent: numberEditor
}
PropertyChanges {
target: numberEditor
visible: true
focus: true
} }
}, },
State { State {
@@ -195,14 +171,8 @@ Item {
when: columnType === CollectionDetails.DataType.Boolean when: columnType === CollectionDetails.DataType.Boolean
PropertyChanges { PropertyChanges {
target: root target: editorLoader
__modifier: boolEditor sourceComponent: boolEditor
}
PropertyChanges {
target: boolEditor
visible: true
focus: true
} }
}, },
State { State {
@@ -210,14 +180,8 @@ Item {
when: columnType === CollectionDetails.DataType.Color when: columnType === CollectionDetails.DataType.Color
PropertyChanges { PropertyChanges {
target: root target: editorLoader
__modifier: colorEditor sourceComponent: null
}
PropertyChanges {
target: colorEditor
visible: true
focus: true
} }
} }
] ]

View File

@@ -102,7 +102,7 @@ Item {
icon: StudioTheme.Constants.save_medium icon: StudioTheme.Constants.save_medium
tooltip: qsTr("Save changes") tooltip: qsTr("Save changes")
enabled: root.model.collectionName !== "" enabled: root.model.collectionName !== ""
onClicked: root.model.saveCurrentCollection() onClicked: root.model.saveDataStoreCollections()
} }
IconButton { IconButton {
@@ -114,7 +114,6 @@ Item {
} }
} }
PlatformWidgets.FileDialog { PlatformWidgets.FileDialog {
id: fileDialog id: fileDialog

View File

@@ -6,8 +6,8 @@ import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import CollectionDetails 1.0 as CollectionDetails import CollectionDetails 1.0 as CollectionDetails
import HelperWidgets 2.0 as HelperWidgets import HelperWidgets 2.0 as HelperWidgets
import StudioTheme 1.0 as StudioTheme
import StudioControls 1.0 as StudioControls import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: root id: root
@@ -18,7 +18,6 @@ Rectangle {
implicitWidth: 300 implicitWidth: 300
implicitHeight: 400 implicitHeight: 400
color: StudioTheme.Values.themeControlBackground color: StudioTheme.Values.themeControlBackground
ColumnLayout { ColumnLayout {
@@ -114,14 +113,17 @@ Rectangle {
color: StudioTheme.Values.themeControlBackgroundInteraction color: StudioTheme.Values.themeControlBackgroundInteraction
MouseArea { MouseArea {
id: topHeaderMouseArea
anchors.fill: parent anchors.fill: parent
anchors.margins: 5 anchors.margins: 5
acceptedButtons: Qt.LeftButton | Qt.RightButton acceptedButtons: Qt.LeftButton | Qt.RightButton
hoverEnabled: true
onClicked: (mouse) => { onClicked: (mouse) => {
tableView.model.selectColumn(index) tableView.model.selectColumn(index)
if (mouse.button === Qt.RightButton) { if (mouse.button === Qt.RightButton) {
let posX = index === root.model.columnCount() - 1 ? parent.width - editProperyDialog.width : 0 let posX = index === root.model.columnCount() - 1 ? parent.width - editPropertyDialog.width : 0
headerMenu.clickedHeaderIndex = index headerMenu.clickedHeaderIndex = index
headerMenu.dialogPos = parent.mapToGlobal(posX, parent.height) headerMenu.dialogPos = parent.mapToGlobal(posX, parent.height)
@@ -130,9 +132,17 @@ Rectangle {
} }
} }
HelperWidgets.ToolTipArea { ToolTip {
anchors.fill: parent id: topHeaderToolTip
text: root.model.propertyType(index)
property bool expectedToBeShown: topHeaderMouseArea.containsMouse
visible: expectedToBeShown && text !== ""
delay: 1000
onExpectedToBeShownChanged: {
if (expectedToBeShown)
text = root.model.propertyType(index)
}
} }
} }
@@ -148,8 +158,8 @@ Rectangle {
StudioControls.MenuItem { StudioControls.MenuItem {
text: qsTr("Edit") text: qsTr("Edit")
onTriggered: editProperyDialog.openDialog(headerMenu.clickedHeaderIndex, onTriggered: editPropertyDialog.openDialog(headerMenu.clickedHeaderIndex,
headerMenu.dialogPos) headerMenu.dialogPos)
} }
StudioControls.MenuItem { StudioControls.MenuItem {
@@ -206,11 +216,22 @@ Rectangle {
delegate: Rectangle { delegate: Rectangle {
id: itemCell id: itemCell
clip: true
implicitWidth: 100 implicitWidth: 100
implicitHeight: itemText.height implicitHeight: StudioTheme.Values.baseHeight
border.color: dataTypeWarning !== CollectionDetails.Warning.None ? color: itemSelected ? StudioTheme.Values.themeControlBackgroundInteraction
StudioTheme.Values.themeWarning : StudioTheme.Values.themeControlBackgroundInteraction : StudioTheme.Values.themeControlBackground
border.width: 1 border.width: 1
border.color: {
if (dataTypeWarning !== CollectionDetails.Warning.None)
return StudioTheme.Values.themeWarning
if (itemSelected)
return StudioTheme.Values.themeControlOutlineInteraction
return StudioTheme.Values.themeControlBackgroundInteraction
}
HelperWidgets.ToolTipArea { HelperWidgets.ToolTipArea {
anchors.fill: parent anchors.fill: parent
@@ -220,59 +241,125 @@ Rectangle {
acceptedButtons: Qt.NoButton acceptedButtons: Qt.NoButton
} }
Text { MouseArea {
id: itemText anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: (mouse) => {
let row = index % tableView.model.rowCount()
text: display tableView.model.selectRow(row)
color: StudioTheme.Values.themePlaceholderTextColorInteraction cellContextMenu.popup()
width: parent.width }
leftPadding: 5 }
topPadding: 3
bottomPadding: 3 Loader {
font.pixelSize: StudioTheme.Values.baseFontSize id: cellContentLoader
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter property int cellColumnType: columnType ? columnType : 0
elide: Text.ElideRight
Component {
id: cellText
Text {
text: display
color: itemSelected ? StudioTheme.Values.themeInteraction
: StudioTheme.Values.themePlaceholderTextColorInteraction
leftPadding: 5
topPadding: 3
bottomPadding: 3
font.pixelSize: StudioTheme.Values.baseFontSize
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
}
Component {
id: colorEditorComponent
ColorViewDelegate {}
}
function resetSource() {
if (columnType === CollectionDetails.DataType.Color)
cellContentLoader.sourceComponent = colorEditorComponent
else
cellContentLoader.sourceComponent = cellText
}
Component.onCompleted: resetSource()
onCellColumnTypeChanged: resetSource()
} }
TableView.editDelegate: CollectionDetailsEditDelegate { TableView.editDelegate: CollectionDetailsEditDelegate {
anchors { anchors {
top: itemText.top top: itemCell.top
left: itemText.left left: itemCell.left
} }
} }
states: [ StudioControls.Menu {
State { id: cellContextMenu
name: "default"
when: !itemSelected
PropertyChanges { width: 140
target: itemCell
color: StudioTheme.Values.themeControlBackground StudioControls.MenuItem {
HelperWidgets.IconLabel {
icon: StudioTheme.Constants.addrowabove_medium
anchors.left: parent.left
anchors.leftMargin: 10
anchors.verticalCenter: parent.verticalCenter
Text {
text: qsTr("Add row above")
color: StudioTheme.Values.themeTextColor
anchors.left: parent.right
anchors.leftMargin: 10
}
} }
PropertyChanges { onTriggered: root.model.insertRow(root.model.selectedRow)
target: itemText
color: StudioTheme.Values.themePlaceholderTextColorInteraction
}
},
State {
name: "selected"
when: itemSelected
PropertyChanges {
target: itemCell
color: StudioTheme.Values.themeControlBackgroundInteraction
border.color: StudioTheme.Values.themeControlBackground
}
PropertyChanges {
target: itemText
color: StudioTheme.Values.themeInteraction
}
} }
]
StudioControls.MenuItem {
HelperWidgets.IconLabel {
icon: StudioTheme.Constants.addrowabove_medium
anchors.left: parent.left
anchors.leftMargin: 10
anchors.verticalCenter: parent.verticalCenter
Text {
text: qsTr("Add row below")
color: StudioTheme.Values.themeTextColor
anchors.left: parent.right
anchors.leftMargin: 10
}
}
onTriggered: root.model.insertRow(root.model.selectedRow + 1)
}
StudioControls.MenuItem {
HelperWidgets.IconLabel {
icon: StudioTheme.Constants.addrowabove_medium
anchors.left: parent.left
anchors.leftMargin: 10
anchors.verticalCenter: parent.verticalCenter
Text {
text: qsTr("Delete this row")
color: StudioTheme.Values.themeTextColor
anchors.left: parent.right
anchors.leftMargin: 10
}
}
onTriggered: root.model.removeRows(root.model.selectedRow, 1)
}
}
} }
} }
@@ -388,10 +475,15 @@ Rectangle {
} }
EditPropertyDialog { EditPropertyDialog {
id: editProperyDialog id: editPropertyDialog
model: root.model model: root.model
} }
Connections {
target: root.parent
onIsHorizontalChanged: editPropertyDialog.close()
}
StudioControls.Dialog { StudioControls.Dialog {
id: deleteColumnDialog id: deleteColumnDialog

View File

@@ -4,9 +4,8 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import CollectionEditorBackend import CollectionEditorBackend
Item { Item {

View File

@@ -0,0 +1,282 @@
// 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 QtQuick.Shapes
import QtQuick.Templates as T
import HelperWidgets 2.0 as HelperWidgets
import StudioTheme as StudioTheme
import StudioControls as StudioControls
import QtQuickDesignerTheme
import QtQuickDesignerColorPalette
Row {
id: colorEditor
property color color
property bool supportGradient: false
readonly property color __editColor: edit
property variant value: {
if (!edit)
return "white" // default color for Rectangle
if (colorEditor.isVector3D) {
return Qt.rgba(__editColor.x,
__editColor.y,
__editColor.z, 1)
}
return __editColor
}
property alias gradientPropertyName: popupDialog.gradientPropertyName
property alias gradientThumbnail: gradientThumbnail
property alias shapeGradientThumbnail: shapeGradientThumbnail
property bool shapeGradients: false
property bool isVector3D: false
property color originalColor
property bool __block: false
function resetShapeColor() {
if (edit)
edit = ""
}
function writeColor() {
if (colorEditor.isVector3D) {
edit = Qt.vector3d(colorEditor.color.r,
colorEditor.color.g,
colorEditor.color.b)
} else {
edit = colorEditor.color
}
}
function initEditor() {
colorEditor.syncColor()
}
// Syncing color from backend to frontend and block reflection
function syncColor() {
colorEditor.__block = true
colorEditor.color = colorEditor.value
hexTextField.syncColor()
colorEditor.__block = false
}
Connections {
id: backendConnection
target: colorEditor
function onValueChanged() {
if (popupDialog.isSolid())
colorEditor.syncColor()
}
function on__EditColorChanged() {
if (popupDialog.isSolid())
colorEditor.syncColor()
}
}
Timer {
id: colorEditorTimer
repeat: false
interval: 100
running: false
onTriggered: {
backendConnection.enabled = false
colorEditor.writeColor()
hexTextField.syncColor()
backendConnection.enabled = true
}
}
onColorChanged: {
if (colorEditor.__block)
return
if (!popupDialog.isInValidState)
return
popupDialog.commitToGradient()
// Delay setting the color to keep ui responsive
if (popupDialog.isSolid())
colorEditorTimer.restart()
}
Rectangle {
id: preview
implicitWidth: StudioTheme.Values.twoControlColumnWidth
implicitHeight: StudioTheme.Values.height
color: colorEditor.color
border.color: StudioTheme.Values.themeControlOutline
border.width: StudioTheme.Values.border
Rectangle {
id: gradientThumbnail
anchors.fill: parent
anchors.margins: StudioTheme.Values.border
visible: !popupDialog.isSolid()
&& !colorEditor.shapeGradients
&& popupDialog.isLinearGradient()
}
Shape {
id: shape
anchors.fill: parent
anchors.margins: StudioTheme.Values.border
visible: !popupDialog.isSolid() && colorEditor.shapeGradients
ShapePath {
id: shapeGradientThumbnail
startX: shape.x - 1
startY: shape.y - 1
strokeWidth: -1
strokeColor: "green"
PathLine {
x: shape.x - 1
y: shape.height
}
PathLine {
x: shape.width
y: shape.height
}
PathLine {
x: shape.width
y: shape.y - 1
}
}
}
Image {
anchors.fill: parent
source: "qrc:/navigator/icon/checkers.png"
fillMode: Image.Tile
z: -1
}
MouseArea {
anchors.fill: parent
onClicked: {
popupDialog.visibility ? popupDialog.close() : popupDialog.open()
forceActiveFocus()
}
}
StudioControls.PopupDialog {
id: popupDialog
property bool isInValidState: loader.active ? popupDialog.loaderItem.isInValidState : true
property QtObject loaderItem: loader.item
property string gradientPropertyName
keepOpen: loader.item?.eyeDropperActive ?? false
width: 260
function commitToGradient() {
if (!loader.active)
return
if (colorEditor.supportGradient && popupDialog.loaderItem.gradientModel.hasGradient) {
var hexColor = convertColorToString(colorEditor.color)
hexTextField.text = hexColor
edit = hexColor
popupDialog.loaderItem.commitGradientColor()
}
}
function isSolid() {
if (!loader.active)
return true
return popupDialog.loaderItem.isSolid()
}
function isLinearGradient(){
if (!loader.active)
return false
return popupDialog.loaderItem.isLinearGradient()
}
function ensureLoader() {
if (!loader.active)
loader.active = true
}
function open() {
popupDialog.ensureLoader()
popupDialog.show(preview)
}
function determineActiveColorMode() {
if (loader.active && popupDialog.loaderItem)
popupDialog.loaderItem.determineActiveColorMode()
else
colorEditor.syncColor()
}
Loader {
id: loader
active: colorEditor.supportGradient
sourceComponent: HelperWidgets.ColorEditorPopup {
shapeGradients: colorEditor.shapeGradients
supportGradient: colorEditor.supportGradient
width: popupDialog.contentWidth
}
onLoaded: {
popupDialog.loaderItem.initEditor()
popupDialog.titleBar = loader.item.titleBarContent
}
}
}
}
HelperWidgets.LineEdit {
id: hexTextField
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
width: hexTextField.implicitWidth
enabled: popupDialog.isSolid()
writeValueManually: true
validator: RegularExpressionValidator {
regularExpression: /#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?/g
}
showTranslateCheckBox: false
showExtendedFunctionButton: false
indicatorVisible: false
onAccepted: colorEditor.color = hexTextField.text
onCommitData: {
colorEditor.color = hexTextField.text
if (popupDialog.isSolid())
colorEditor.writeColor()
}
function syncColor() {
hexTextField.text = colorEditor.color
}
}
Component.onCompleted: popupDialog.determineActiveColorMode()
on__EditColorChanged: popupDialog.determineActiveColorMode()
}

View File

@@ -36,6 +36,11 @@ StudioControls.Dialog {
root.open() root.open()
} }
onWidthChanged: {
if (visible && x > parent.width)
root.close()
}
onAccepted: { onAccepted: {
if (nameTextField.text !== "" && nameTextField.text !== root.__currentName) if (nameTextField.text !== "" && nameTextField.text !== root.__currentName)
root.model.renameColumn(root.__propertyIndex, nameTextField.text) root.model.renameColumn(root.__propertyIndex, nameTextField.text)
@@ -50,13 +55,13 @@ StudioControls.Dialog {
Grid { Grid {
columns: 2 columns: 2
rows: 2 rows: 2
spacing: 2 rowSpacing: 2
columnSpacing: 25
verticalItemAlignment: Grid.AlignVCenter verticalItemAlignment: Grid.AlignVCenter
Text { Text {
text: qsTr("Name") text: qsTr("Name")
color: StudioTheme.Values.themeTextColor color: StudioTheme.Values.themeTextColor
width: 50
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
@@ -129,14 +134,12 @@ StudioControls.Dialog {
Row { Row {
height: 40 height: 40
spacing: 5 spacing: 5
anchors.right: parent.right
HelperWidgets.Button { HelperWidgets.Button {
id: editButton id: editButton
text: qsTr("Apply") text: qsTr("Apply")
enabled: nameTextField.text !== "" enabled: nameTextField.text !== ""
width: 70
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
onClicked: root.accept() onClicked: root.accept()
@@ -145,7 +148,6 @@ StudioControls.Dialog {
HelperWidgets.Button { HelperWidgets.Button {
text: qsTr("Cancel") text: qsTr("Cancel")
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
width: 70
onClicked: root.reject() onClicked: root.reject()
} }

View File

@@ -4,10 +4,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0
import Qt.labs.platform as PlatformWidgets import Qt.labs.platform as PlatformWidgets
import HelperWidgets 2.0 as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls 1.0 as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
StudioControls.Dialog { StudioControls.Dialog {

View File

@@ -4,12 +4,11 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0
import Qt.labs.platform as PlatformWidgets import Qt.labs.platform as PlatformWidgets
import HelperWidgets 2.0 as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls 1.0 as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import CollectionEditor 1.0 import CollectionEditor
StudioControls.Dialog { StudioControls.Dialog {
id: root id: root

View File

@@ -4,10 +4,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import ContentLibraryBackend import ContentLibraryBackend
Item { Item {

View File

@@ -3,10 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import QtQuick.Controls import QtQuick.Controls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import ContentLibraryBackend import ContentLibraryBackend

View File

@@ -4,10 +4,8 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import ContentLibraryBackend import ContentLibraryBackend
import WebFetcher import WebFetcher

View File

@@ -4,10 +4,8 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import ContentLibraryBackend import ContentLibraryBackend
import WebFetcher import WebFetcher

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -12,6 +12,7 @@ Item {
property alias blurSrc3: blurredItemSource3 property alias blurSrc3: blurredItemSource3
property alias blurSrc4: blurredItemSource4 property alias blurSrc4: blurredItemSource4
property alias blurSrc5: blurredItemSource5 property alias blurSrc5: blurredItemSource5
property Item source: null
component BlurItem: ShaderEffect { component BlurItem: ShaderEffect {
property vector2d offset: Qt.vector2d((1.0 + rootItem.blurMultiplier) / width, property vector2d offset: Qt.vector2d((1.0 + rootItem.blurMultiplier) / width,
@@ -37,8 +38,8 @@ Item {
// Size of the first blurred item is by default half of the source. // Size of the first blurred item is by default half of the source.
// Increase for quality and decrease for performance & more blur. // Increase for quality and decrease for performance & more blur.
readonly property int blurItemSize: 8 readonly property int blurItemSize: 8
width: Math.ceil(rootItem.width / 16) * blurItemSize width: Math.ceil((rootItem.source ? rootItem.source.width : 16) / 16) * blurItemSize
height: Math.ceil(rootItem.height / 16) * blurItemSize height: Math.ceil((rootItem.source ? rootItem.source.height : 16) / 16) * blurItemSize
} }
BlurItem { BlurItem {
id: blurredItemSource2 id: blurredItemSource2

View File

@@ -3,10 +3,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
HelperWidgets.Section { HelperWidgets.Section {

View File

@@ -4,10 +4,9 @@
import QtQuick import QtQuick
import QtQuick.Dialogs import QtQuick.Dialogs
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Item { Item {

View File

@@ -65,12 +65,12 @@ Item {
EffectMakerTopBar { EffectMakerTopBar {
onAddClicked: { onAddClicked: {
root.onSaveChangesCallback = () => { EffectMakerBackend.effectMakerModel.clear() } root.onSaveChangesCallback = () => { EffectMakerBackend.effectMakerModel.clear(true) }
if (EffectMakerBackend.effectMakerModel.hasUnsavedChanges) if (EffectMakerBackend.effectMakerModel.hasUnsavedChanges)
saveChangesDialog.open() saveChangesDialog.open()
else else
EffectMakerBackend.effectMakerModel.clear() EffectMakerBackend.effectMakerModel.clear(true)
} }
onSaveClicked: { onSaveClicked: {

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Column { Column {
@@ -196,7 +195,7 @@ Column {
BlurHelper { BlurHelper {
id: blurHelper id: blurHelper
anchors.fill: parent source: source
property int blurMax: g_propertyData.blur_helper_max_level ? g_propertyData.blur_helper_max_level : 64 property int blurMax: g_propertyData.blur_helper_max_level ? g_propertyData.blur_helper_max_level : 64
property real blurMultiplier: g_propertyData.blurMultiplier ? g_propertyData.blurMultiplier : 0 property real blurMultiplier: g_propertyData.blurMultiplier ? g_propertyData.blurMultiplier : 0
} }

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Rectangle { Rectangle {

View File

@@ -3,10 +3,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Rectangle { Rectangle {

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
StudioControls.ComboBox { StudioControls.ComboBox {

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
StudioControls.ComboBox { StudioControls.ComboBox {

View File

@@ -84,6 +84,9 @@ StudioControls.Dialog {
text: qsTr("Save") text: qsTr("Save")
enabled: nameText.text !== "" enabled: nameText.text !== ""
onClicked: { onClicked: {
if (!enabled) // needed since this event handler can be triggered from keyboard events
return
EffectMakerBackend.effectMakerModel.saveComposition(nameText.text) EffectMakerBackend.effectMakerModel.saveComposition(nameText.text)
if (root.clearOnClose) { if (root.clearOnClose) {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
StudioControls.CheckBox { StudioControls.CheckBox {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Row { Row {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Row { Row {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Row { Row {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets import HelperWidgets as HelperWidgets
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Row { Row {

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
Row { Row {

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
RowLayout { RowLayout {

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
RowLayout { RowLayout {

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import EffectMakerBackend import EffectMakerBackend
RowLayout { RowLayout {

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
Rectangle { Rectangle {

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import ItemLibraryBackend import ItemLibraryBackend
Column { Column {

View File

@@ -1,12 +1,12 @@
// Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import ItemLibraryBackend import ItemLibraryBackend
import QtQuickDesignerTheme
Item { Item {
id: delegateRoot id: delegateRoot

View File

@@ -2,11 +2,11 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import ItemLibraryBackend import ItemLibraryBackend
import QtQuickDesignerTheme
/* The view displaying the item grid. /* The view displaying the item grid.
The following Qml context properties have to be set: The following Qml context properties have to be set:
- ItemLibraryModel itemLibraryModel - ItemLibraryModel itemLibraryModel

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import MaterialBrowserBackend import MaterialBrowserBackend
Item { Item {

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2023 The Qt Company Ltd. // Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import MaterialBrowserBackend import MaterialBrowserBackend
TextInput { TextInput {

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
import MaterialBrowserBackend import MaterialBrowserBackend
Item { Item {

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import MaterialBrowserBackend import MaterialBrowserBackend

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
PropertyEditorPane { PropertyEditorPane {
id: root id: root

View File

@@ -2,8 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0
PropertyEditorPane { PropertyEditorPane {
id: itemPane id: itemPane

View File

@@ -2,11 +2,10 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme import MaterialToolBarAction
import MaterialToolBarAction 1.0
Rectangle { Rectangle {
id: root id: root

View File

@@ -4,10 +4,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Column { Column {
id: root id: root

View File

@@ -1,13 +1,11 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioControls as StudioControls
import StudioTheme as StudioTheme
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
SectionLayout { SectionLayout {
id: anchorRow id: anchorRow

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Section { Section {
caption: qsTr("Button Content") caption: qsTr("Button Content")

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Section { Section {
id: section id: section

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Column { Column {
anchors.left: parent.left anchors.left: parent.left

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Column { Column {
anchors.left: parent.left anchors.left: parent.left

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
PropertyEditorPane { PropertyEditorPane {
id: itemPane id: itemPane

View File

@@ -1,18 +1,17 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import HelperWidgets 2.0 import HelperWidgets
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: itemPane id: itemPane
width: 320 width: 320
height: 400 height: 400
color: Theme.qmlDesignerBackgroundColorDarkAlternate() color: StudioTheme.Values.themePanelBackground
ColumnLayout { ColumnLayout {
id: mainColumn id: mainColumn

View File

@@ -3,9 +3,8 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
PropertyEditorPane { PropertyEditorPane {
id: itemPane id: itemPane

View File

@@ -1,10 +1,9 @@
// Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Item { Item {
id: buttonRowButton id: buttonRowButton

View File

@@ -7,7 +7,6 @@ import QtQuick.Shapes
import QtQuick.Templates as T import QtQuick.Templates as T
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import QtQuickDesignerTheme
import QtQuickDesignerColorPalette import QtQuickDesignerColorPalette
SecondColumnLayout { SecondColumnLayout {
@@ -36,6 +35,7 @@ SecondColumnLayout {
property alias shapeGradientThumbnail: shapeGradientThumbnail property alias shapeGradientThumbnail: shapeGradientThumbnail
property alias showExtendedFunctionButton: hexTextField.showExtendedFunctionButton property alias showExtendedFunctionButton: hexTextField.showExtendedFunctionButton
property alias showHexTextField: hexTextField.visible
property bool shapeGradients: false property bool shapeGradients: false
property color originalColor property color originalColor

View File

@@ -5,7 +5,6 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Shapes import QtQuick.Shapes
import QtQuick.Templates as T import QtQuick.Templates as T
import QtQuickDesignerTheme
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import QtQuickDesignerColorPalette import QtQuickDesignerColorPalette
@@ -393,10 +392,7 @@ Column {
} }
} }
} }
}
Connections {
target: modelNodeBackend
function onSelectionChanged() { function onSelectionChanged() {
root.initEditor() root.initEditor()
} }

View File

@@ -1,13 +1,12 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import QtQuick.Templates as T
import QtQuick.Templates 2.15 as T import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Section { Section {
id: root id: root

View File

@@ -1,12 +1,11 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Window 2.15 import QtQuick.Window
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuickDesignerTheme 1.0 import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
StudioControls.TextField { StudioControls.TextField {
id: textField id: textField

View File

@@ -1,11 +1,10 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import StudioControls 1.0 as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0
Item { Item {
id: extendedFunctionButton id: extendedFunctionButton

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import Qt.labs.platform import Qt.labs.platform
import QtQuickDesignerTheme
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme

View File

@@ -1,13 +1,12 @@
// Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: tabBackground id: tabBackground

View File

@@ -1,10 +1,9 @@
// Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 import QtQuick.Controls
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: root id: root

View File

@@ -1,10 +1,9 @@
// Copyright (C) 2016 The Qt Company Ltd. // Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import StudioControls 1.0 as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme 1.0
StudioControls.TextField { StudioControls.TextField {
id: lineEdit id: lineEdit

View File

@@ -4,16 +4,15 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: itemPane id: itemPane
width: 320 width: 320
height: 400 height: 400
color: Theme.qmlDesignerBackgroundColorDarkAlternate() color: StudioTheme.Values.themePanelBackground
Component.onCompleted: Controller.mainScrollView = mainScrollView Component.onCompleted: Controller.mainScrollView = mainScrollView

View File

@@ -1,10 +1,9 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Rectangle { Rectangle {
id: panel id: panel

View File

@@ -28,6 +28,8 @@ Flickable {
// and set the ads focus on it. // and set the ads focus on it.
objectName: "__mainSrollView" objectName: "__mainSrollView"
flickDeceleration: 10000
HoverHandler { id: hoverHandler } HoverHandler { id: hoverHandler }
ScrollBar.horizontal: StudioControls.TransientScrollBar { ScrollBar.horizontal: StudioControls.TransientScrollBar {

View File

@@ -1,12 +1,11 @@
// Copyright (C) 2021 The Qt Company Ltd. // Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15 import QtQuick
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts
import QtQuickDesignerTheme 1.0 import StudioControls as StudioControls
import StudioControls 1.0 as StudioControls import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
Item { Item {
id: section id: section

View File

@@ -7,7 +7,6 @@ import QtQuick.Controls
import HelperWidgets import HelperWidgets
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme
Row { Row {
id: root id: root

View File

@@ -10,6 +10,7 @@ ButtonRowButton 2.0 ButtonRowButton.qml
CharacterSection 2.0 CharacterSection.qml CharacterSection 2.0 CharacterSection.qml
CheckBox 2.0 CheckBox.qml CheckBox 2.0 CheckBox.qml
ColorEditor 2.0 ColorEditor.qml ColorEditor 2.0 ColorEditor.qml
ColorEditorPopup 2.0 ColorEditorPopup.qml
ColorLogic 2.0 ColorLogic.qml ColorLogic 2.0 ColorLogic.qml
ComboBox 2.0 ComboBox.qml ComboBox 2.0 ComboBox.qml
ComponentButton 2.0 ComponentButton.qml ComponentButton 2.0 ComponentButton.qml

View File

@@ -3,7 +3,6 @@
import QtQuick import QtQuick
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme
import QtQuickDesignerColorPalette import QtQuickDesignerColorPalette
import StudioHelpers import StudioHelpers

View File

@@ -104,7 +104,7 @@ QtObject {
return root.maximumHeight + (2 * window.margin) return root.maximumHeight + (2 * window.margin)
} }
visible: false visible: false
flags: Qt.FramelessWindowHint | Qt.Dialog flags: Qt.FramelessWindowHint | Qt.Dialog | Qt.WindowStaysOnTopHint
color: "transparent" color: "transparent"
onClosing: function (close) { onClosing: function (close) {

View File

@@ -37,6 +37,8 @@ T.SpinBox {
property bool drag: false property bool drag: false
property bool sliderDrag: sliderPopup.drag property bool sliderDrag: sliderPopup.drag
property bool trailingZeroes: true
property bool dirty: false // user modification flag property bool dirty: false // user modification flag
// TODO Not used anymore. Will be removed when all dependencies were removed. // TODO Not used anymore. Will be removed when all dependencies were removed.
@@ -204,11 +206,14 @@ T.SpinBox {
textFromValue: function (value, locale) { textFromValue: function (value, locale) {
locale.numberOptions = Locale.OmitGroupSeparator locale.numberOptions = Locale.OmitGroupSeparator
return Number(control.realValue).toLocaleString(locale, 'f', control.decimals) var decimals = trailingZeroes ? control.decimals : decimalCounter(value)
return Number(control.realValue).toLocaleString(locale, 'f', decimals)
} }
valueFromText: function (text, locale) { valueFromText: function (text, locale) {
control.setRealValue(Number.fromLocaleString(locale, spinBoxInput.text)) control.setRealValue(Number.fromLocaleString(locale, spinBoxInput.text))
return 0 return 0
} }
@@ -400,4 +405,14 @@ T.SpinBox {
if (control.realValue !== currValue) if (control.realValue !== currValue)
control.realValueModified() control.realValueModified()
} }
function decimalCounter(number) {
var strNumber = Math.abs(number).toString()
var decimalIndex = strNumber.indexOf('.')
// Set 'index' to a minimum of 1 if there are no fractions
var index = decimalIndex == -1 ? 1 : strNumber.length - decimalIndex - 1
return Math.min(index, control.decimals);
}
} }

View File

@@ -3,8 +3,7 @@
import QtQuick import QtQuick
import QtQuick.Templates as T import QtQuick.Templates as T
import QtQuickDesignerTheme 1.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
T.TextField { T.TextField {
id: control id: control

View File

@@ -4,7 +4,6 @@
import QtQuick import QtQuick
import QtQuick.Templates as T import QtQuick.Templates as T
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme
import StudioWindowManager import StudioWindowManager
T.ComboBox { T.ComboBox {

View File

@@ -5,7 +5,6 @@ import QtQuick
import QtQuick.Controls import QtQuick.Controls
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Templates as T import QtQuick.Templates as T
import QtQuickDesignerTheme
import StudioControls as StudioControls import StudioControls as StudioControls
import StudioTheme as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerColorPalette import QtQuickDesignerColorPalette

View File

@@ -3,7 +3,7 @@
pragma Singleton pragma Singleton
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import QtQuickDesignerTheme
QtObject { QtObject {
id: values id: values

View File

@@ -2,9 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0 import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme
PropertyEditorPane { PropertyEditorPane {
id: root id: root

View File

@@ -2,8 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets
import HelperWidgets 2.0
PropertyEditorPane { PropertyEditorPane {
id: itemPane id: itemPane

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick import QtQuick
import QtQuickDesignerTheme 1.0 import HelperWidgets as HelperWidgets
import HelperWidgets 2.0 as HelperWidgets import StudioTheme as StudioTheme
import StudioTheme 1.0 as StudioTheme import TextureToolBarAction
import TextureToolBarAction 1.0
Rectangle { Rectangle {
id: root id: root

View File

@@ -3,11 +3,9 @@
import QtQuick import QtQuick
import QtQuick.Controls import QtQuick.Controls
import StudioControls 1.0 as StudioControls import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme import StudioTheme as StudioTheme
import QtQuickDesignerTheme 1.0 import ToolBar
import ToolBar 1.0
Rectangle { Rectangle {
id: root id: root

Some files were not shown because too many files have changed in this diff Show More