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

Change-Id: I5d593fc74785958886453dc0b452c25356a8c65f
This commit is contained in:
Tim Jenssen
2024-01-18 12:12:51 +01: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
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:
\list

View File

@@ -124,10 +124,14 @@
\li Purpose
\row
\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
to avoid duplicate IDs when the layer and the respective artwork
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
\li \uicontrol {Export as}
\li Determines how to export the group or layer:
@@ -146,6 +150,8 @@
into one component.
\li \uicontrol Skipped completely skips the selected layer.
\endlist
\note Use \inlineimage figma-binding-reset.png button next to
\uicontrol {Export as} to reset to default value.
\row
\li \uicontrol {Custom Component Type}
\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
parent component.
\row
\li \uicontrol Visible
\li Determines the visibility of the layer.
\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.
\li \uicontrol {Start Screen}
\li Sets the component to be the starting component in \QDS project.
\endtable
\section2 Settings
@@ -239,6 +240,10 @@
\li \uicontrol {Export as shapes}
\li Exports vectors as components of the type \l{SVG Path Item} from the
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
\li \uicontrol {Reset plugin data}
\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
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
\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.
\li
\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
\li \uicontrol Share
\li Shares the application online using Qt Design Viewer.

View File

@@ -14,10 +14,11 @@
To detach views:
\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 Start dragging the view to another position.
\li Select the \inlineimage icons/detach-group-icon.png
(\uicontrol {Detach Group}) button.
\endlist
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.
\note To lock all views, toggle
\inlineimage icons/lockoff.png
to \inlineimage icons/lockon.png
at the top toolbar.
\section1 Saving Workspaces
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',
help='Skip cdbextension and the python dependency packaging step (Windows)',
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',
action='store_true', default=False)
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)
parser.add_argument('--with-cpack', help='Create packages with cpack',
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',
action='append', dest='prefix_paths', default=[])
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),
'-DBUILD_QBS=' + cmake_option(build_qbs),
'-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',
'-DWITH_TESTS=' + cmake_option(args.with_tests)]
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:
command = shlex.split(args.sign_command)
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)
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'), '*'],
paths.dev_install)
# 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):
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'), '*'],
paths.debug_install)
if common.is_mac_platform() and common.codesign_call():

View File

@@ -3,7 +3,6 @@
import QtQuick
import CollectionDetails 1.0 as CollectionDetails
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioHelpers as StudioHelpers
import StudioTheme 1.0 as StudioTheme
@@ -11,119 +10,106 @@ import QtQuick.Templates as T
Item {
id: root
required property var columnType
property var __modifier : textEditor
property bool __changesAccepted: true
TableView.onCommit: {
if (root.__changesAccepted)
edit = __modifier.editor.editValue
}
Component.onCompleted: {
__changesAccepted = true
if (edit && edit !== "")
root.__modifier.editor.editValue = edit
if (editorLoader.changesAccepted && edit !== editorLoader.acceptedValue)
edit = editorLoader.acceptedValue
}
onActiveFocusChanged: {
if (root.activeFocus)
root.__modifier.editor.forceActiveFocus()
}
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
if (root.activeFocus && !editorLoader.triggered && editorLoader.item) {
editorLoader.triggered = true
editorLoader.item.open()
}
StudioControls.ColorEditorPopup {
id: colorPicker
// active focus should be checked again, because it might be affected by editorLoader.item
if (root.activeFocus && editorLoader.editor)
editorLoader.editor.forceActiveFocus()
}
property alias editValue: colorBackend.color
color: colorBackend.color
Loader {
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) {
colorBackend.activateColor(color)
Connections {
id: modifierFocusConnection
target: editorLoader.editor
enabled: editorLoader.item !== undefined
function onActiveFocusChanged() {
if (!modifierFocusConnection.target.activeFocus) {
editorLoader.acceptedValue = editorLoader.editValue
root.TableView.commit()
}
}
}
background: Rectangle {
color: StudioTheme.Values.themeControlBackgroundInteraction
border.color: StudioTheme.Values.themeInteraction
border.width: StudioTheme.Values.border
Component {
id: textEditor
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
implicitWidth: contentWidth
enabled: visible
focus: true
visible: false
Connections {
@@ -144,6 +130,8 @@ Item {
function onActiveFocusChanged() {
if (!editorPopup.editor.activeFocus)
editorPopup.close()
else if (edit)
editorPopup.editor.editValue = edit
}
}
@@ -151,7 +139,7 @@ Item {
target: editorPopup.editor.Keys
function onEscapePressed() {
root.__changesAccepted = false
editorLoader.changesAccepted = false
editorPopup.close()
}
}
@@ -165,14 +153,8 @@ Item {
&& columnType !== CollectionDetails.DataType.Number
PropertyChanges {
target: root
__modifier: textEditor
}
PropertyChanges {
target: textEditor
visible: true
focus: true
target: editorLoader
sourceComponent: textEditor
}
},
State {
@@ -180,14 +162,8 @@ Item {
when: columnType === CollectionDetails.DataType.Number
PropertyChanges {
target: root
__modifier: numberEditor
}
PropertyChanges {
target: numberEditor
visible: true
focus: true
target: editorLoader
sourceComponent: numberEditor
}
},
State {
@@ -195,14 +171,8 @@ Item {
when: columnType === CollectionDetails.DataType.Boolean
PropertyChanges {
target: root
__modifier: boolEditor
}
PropertyChanges {
target: boolEditor
visible: true
focus: true
target: editorLoader
sourceComponent: boolEditor
}
},
State {
@@ -210,14 +180,8 @@ Item {
when: columnType === CollectionDetails.DataType.Color
PropertyChanges {
target: root
__modifier: colorEditor
}
PropertyChanges {
target: colorEditor
visible: true
focus: true
target: editorLoader
sourceComponent: null
}
}
]

View File

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

View File

@@ -6,8 +6,8 @@ import QtQuick.Controls
import QtQuick.Layouts
import CollectionDetails 1.0 as CollectionDetails
import HelperWidgets 2.0 as HelperWidgets
import StudioTheme 1.0 as StudioTheme
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
Rectangle {
id: root
@@ -18,7 +18,6 @@ Rectangle {
implicitWidth: 300
implicitHeight: 400
color: StudioTheme.Values.themeControlBackground
ColumnLayout {
@@ -114,14 +113,17 @@ Rectangle {
color: StudioTheme.Values.themeControlBackgroundInteraction
MouseArea {
id: topHeaderMouseArea
anchors.fill: parent
anchors.margins: 5
acceptedButtons: Qt.LeftButton | Qt.RightButton
hoverEnabled: true
onClicked: (mouse) => {
tableView.model.selectColumn(index)
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.dialogPos = parent.mapToGlobal(posX, parent.height)
@@ -130,9 +132,17 @@ Rectangle {
}
}
HelperWidgets.ToolTipArea {
anchors.fill: parent
text: root.model.propertyType(index)
ToolTip {
id: topHeaderToolTip
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 {
text: qsTr("Edit")
onTriggered: editProperyDialog.openDialog(headerMenu.clickedHeaderIndex,
headerMenu.dialogPos)
onTriggered: editPropertyDialog.openDialog(headerMenu.clickedHeaderIndex,
headerMenu.dialogPos)
}
StudioControls.MenuItem {
@@ -206,11 +216,22 @@ Rectangle {
delegate: Rectangle {
id: itemCell
clip: true
implicitWidth: 100
implicitHeight: itemText.height
border.color: dataTypeWarning !== CollectionDetails.Warning.None ?
StudioTheme.Values.themeWarning : StudioTheme.Values.themeControlBackgroundInteraction
implicitHeight: StudioTheme.Values.baseHeight
color: itemSelected ? StudioTheme.Values.themeControlBackgroundInteraction
: StudioTheme.Values.themeControlBackground
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 {
anchors.fill: parent
@@ -220,59 +241,125 @@ Rectangle {
acceptedButtons: Qt.NoButton
}
Text {
id: itemText
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: (mouse) => {
let row = index % tableView.model.rowCount()
text: display
color: StudioTheme.Values.themePlaceholderTextColorInteraction
width: parent.width
leftPadding: 5
topPadding: 3
bottomPadding: 3
font.pixelSize: StudioTheme.Values.baseFontSize
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
tableView.model.selectRow(row)
cellContextMenu.popup()
}
}
Loader {
id: cellContentLoader
property int cellColumnType: columnType ? columnType : 0
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 {
anchors {
top: itemText.top
left: itemText.left
top: itemCell.top
left: itemCell.left
}
}
states: [
State {
name: "default"
when: !itemSelected
StudioControls.Menu {
id: cellContextMenu
PropertyChanges {
target: itemCell
color: StudioTheme.Values.themeControlBackground
width: 140
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 {
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
}
onTriggered: root.model.insertRow(root.model.selectedRow)
}
]
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 {
id: editProperyDialog
id: editPropertyDialog
model: root.model
}
Connections {
target: root.parent
onIsHorizontalChanged: editPropertyDialog.close()
}
StudioControls.Dialog {
id: deleteColumnDialog

View File

@@ -4,9 +4,8 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0 as HelperWidgets
import StudioTheme 1.0 as StudioTheme
import HelperWidgets as HelperWidgets
import StudioTheme as StudioTheme
import CollectionEditorBackend
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()
}
onWidthChanged: {
if (visible && x > parent.width)
root.close()
}
onAccepted: {
if (nameTextField.text !== "" && nameTextField.text !== root.__currentName)
root.model.renameColumn(root.__propertyIndex, nameTextField.text)
@@ -50,13 +55,13 @@ StudioControls.Dialog {
Grid {
columns: 2
rows: 2
spacing: 2
rowSpacing: 2
columnSpacing: 25
verticalItemAlignment: Grid.AlignVCenter
Text {
text: qsTr("Name")
color: StudioTheme.Values.themeTextColor
width: 50
verticalAlignment: Text.AlignVCenter
}
@@ -129,14 +134,12 @@ StudioControls.Dialog {
Row {
height: 40
spacing: 5
anchors.right: parent.right
HelperWidgets.Button {
id: editButton
text: qsTr("Apply")
enabled: nameTextField.text !== ""
width: 70
anchors.bottom: parent.bottom
onClicked: root.accept()
@@ -145,7 +148,6 @@ StudioControls.Dialog {
HelperWidgets.Button {
text: qsTr("Cancel")
anchors.bottom: parent.bottom
width: 70
onClicked: root.reject()
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -12,6 +12,7 @@ Item {
property alias blurSrc3: blurredItemSource3
property alias blurSrc4: blurredItemSource4
property alias blurSrc5: blurredItemSource5
property Item source: null
component BlurItem: ShaderEffect {
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.
// Increase for quality and decrease for performance & more blur.
readonly property int blurItemSize: 8
width: Math.ceil(rootItem.width / 16) * blurItemSize
height: Math.ceil(rootItem.height / 16) * blurItemSize
width: Math.ceil((rootItem.source ? rootItem.source.width : 16) / 16) * blurItemSize
height: Math.ceil((rootItem.source ? rootItem.source.height : 16) / 16) * blurItemSize
}
BlurItem {
id: blurredItemSource2

View File

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

View File

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

View File

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

View File

@@ -2,10 +2,9 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme
import StudioTheme as StudioTheme
import EffectMakerBackend
Column {
@@ -196,7 +195,7 @@ Column {
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 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
import QtQuick
import QtQuickDesignerTheme
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme
import StudioTheme as StudioTheme
import EffectMakerBackend
Rectangle {

View File

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

View File

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

View File

@@ -84,6 +84,9 @@ StudioControls.Dialog {
text: qsTr("Save")
enabled: nameText.text !== ""
onClicked: {
if (!enabled) // needed since this event handler can be triggered from keyboard events
return
EffectMakerBackend.effectMakerModel.saveComposition(nameText.text)
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
import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme
import StudioTheme as StudioTheme
import EffectMakerBackend
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
import QtQuick
import QtQuickDesignerTheme
import StudioControls as StudioControls
import StudioTheme 1.0 as StudioTheme
import StudioTheme as StudioTheme
import EffectMakerBackend
Row {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
import QtQuick
import QtQuick.Controls
import HelperWidgets
import StudioTheme as StudioTheme
import ItemLibraryBackend
import QtQuickDesignerTheme
Item {
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
import QtQuick
import QtQuick.Layouts
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import ItemLibraryBackend
import QtQuickDesignerTheme
/* The view displaying the item grid.
The following Qml context properties have to be set:
- ItemLibraryModel itemLibraryModel

View File

@@ -4,7 +4,6 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets
import StudioControls as StudioControls
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import MaterialBrowserBackend
Item {

View File

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

View File

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

View File

@@ -4,7 +4,6 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuickDesignerTheme
import HelperWidgets
import StudioTheme as StudioTheme
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
import HelperWidgets
import StudioTheme as StudioTheme
PropertyEditorPane {
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import HelperWidgets
PropertyEditorPane {
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0 as HelperWidgets
import StudioControls 1.0 as StudioControls
import StudioTheme 1.0 as StudioTheme
import MaterialToolBarAction 1.0
import HelperWidgets as HelperWidgets
import StudioControls as StudioControls
import StudioTheme as StudioTheme
import MaterialToolBarAction
Rectangle {
id: root

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -37,6 +37,8 @@ T.SpinBox {
property bool drag: false
property bool sliderDrag: sliderPopup.drag
property bool trailingZeroes: true
property bool dirty: false // user modification flag
// TODO Not used anymore. Will be removed when all dependencies were removed.
@@ -204,11 +206,14 @@ T.SpinBox {
textFromValue: function (value, locale) {
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) {
control.setRealValue(Number.fromLocaleString(locale, spinBoxInput.text))
return 0
}
@@ -400,4 +405,14 @@ T.SpinBox {
if (control.realValue !== currValue)
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.Templates as T
import QtQuickDesignerTheme 1.0
import StudioTheme 1.0 as StudioTheme
import StudioTheme as StudioTheme
T.TextField {
id: control

View File

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

View File

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

View File

@@ -3,7 +3,7 @@
pragma Singleton
import QtQuick
import QtQuickDesignerTheme 1.0
import QtQuickDesignerTheme
QtObject {
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
import HelperWidgets
import StudioTheme as StudioTheme
PropertyEditorPane {
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0
import HelperWidgets
PropertyEditorPane {
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
import QtQuick
import QtQuickDesignerTheme 1.0
import HelperWidgets 2.0 as HelperWidgets
import StudioTheme 1.0 as StudioTheme
import TextureToolBarAction 1.0
import HelperWidgets as HelperWidgets
import StudioTheme as StudioTheme
import TextureToolBarAction
Rectangle {
id: root

View File

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

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