forked from qt-creator/qt-creator
QmlDesigner: PropertyEditor redesign
* Add responsive resizing for property editor width * Adapt custom component templates * Fix custom component template generation if no properties defined * Adapt Animation specifics and sections * Adapt HelperWidgets specifics and sections * Update ColorEditor and its components * Remove SimpleColorPalette and its components * Add ColorPaletteSingleton * Implement eye dropper for ColorEditor * Add TextExtrasSection and FontExtrasSection * Move Component section to a new file * Remove Advanced tab make its content a section * Redesign TabBar and TabButton * Make QtQuick.Controls 2 specifics part of QtCreator repository for now * Update import versions * Add new constants * Update icon font * Fix/update StudioControls and HelperWidgets * Fix a few undefined warnings Task-number: QDS-4582 Task-number: QDS-4562 Task-number: QDS-4555 Task-number: QDS-4554 Task-number: QDS-4553 Task-number: QDS-4299 Task-number: QDS-4296 Task-number: QDS-3769 Change-Id: Ia9677fd97f26e0e31a45da7a4136db1c9e1a5bf2 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
committed by
Henning Gründl
parent
32895873e4
commit
66cd1a41c9
@@ -105,7 +105,6 @@ Item {
|
||||
caption: dirName
|
||||
sectionHeight: 30
|
||||
sectionFontSize: 15
|
||||
contentLevel: dirDepth
|
||||
levelShift: 20
|
||||
leftPadding: 0
|
||||
hideHeader: dirDepth === 0
|
||||
|
@@ -1,14 +1,15 @@
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.%2.valueToString
|
||||
backendValue: backendValues.%2
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
@@ -1,14 +1,9 @@
|
||||
// Dummy comment to consume the first argument and suppress warnings %1
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Color")
|
||||
expanded: false
|
||||
level: 2
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.%2
|
||||
supportGradient: false
|
||||
}
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.%2
|
||||
supportGradient: false
|
||||
}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
// Dummy comment to consume the first argument and suppress warnings %1
|
||||
|
||||
FontSection {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Font")
|
||||
leftPadding: 8
|
||||
rightPadding: 0
|
||||
caption: "%1" + " - " + qsTr("Font")
|
||||
fontName: "%2"
|
||||
expanded: false
|
||||
level: 2
|
||||
level: 1
|
||||
}
|
||||
|
@@ -1,57 +1,48 @@
|
||||
// Dummy comment to consume the first argument and suppress warnings %1
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Image")
|
||||
leftPadding: 8
|
||||
rightPadding: 0
|
||||
caption: "%1" + " - " + qsTr("Image")
|
||||
expanded: false
|
||||
level: 2
|
||||
level: 1
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Source")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Source") }
|
||||
|
||||
SecondColumnLayout {
|
||||
UrlChooser {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.%2_source
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Fill mode")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Fill mode") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Image"
|
||||
model: ["Stretch", "PreserveAspectFit", "PreserveAspectCrop", "Tile", "TileVertically", "TileHorizontally", "Pad"]
|
||||
backendValue: backendValues.%2_fillMode
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Source size")
|
||||
disabledState: !backendValues.%2_sourceSize.isAvailable
|
||||
disabledState: !backendValues.%2_sourceSize_height.isAvailable
|
||||
&& !backendValues.%2_sourceSize_width.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.%2_sourceSize_width.isAvailable
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.%2_sourceSize_width
|
||||
minimumValue: 0
|
||||
maximumValue: 8192
|
||||
@@ -59,18 +50,18 @@ Section {
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("W")
|
||||
//disabledStateSoft: !backendValues.%2_sourceSize_width.isAvailable
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.%2_sourceSize_height.isAvailable
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.%2_sourceSize_height
|
||||
minimumValue: 0
|
||||
maximumValue: 8192
|
||||
@@ -78,45 +69,47 @@ Section {
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("H")
|
||||
//disabledStateSoft: !backendValues.%2_sourceSize_height.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Horizontal alignment")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Alignment H") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "Image"
|
||||
model: ["AlignLeft", "AlignRight", "AlignHCenter"]
|
||||
backendValue: backendValues.%2_horizontalAlignment
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Vertical alignment")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Alignment V") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "Image"
|
||||
model: ["AlignTop", "AlignBottom", "AlignVCenter"]
|
||||
backendValue: backendValues.%2_verticalAlignment
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Asynchronous")
|
||||
tooltip: qsTr("Loads images on the local filesystem asynchronously in a separate thread.")
|
||||
disabledState: !backendValues.%2_asynchronous.isAvailable
|
||||
@@ -127,12 +120,14 @@ Section {
|
||||
enabled: backendValues.%2_asynchronous.isAvailable
|
||||
text: backendValues.%2_asynchronous.valueToString
|
||||
backendValue: backendValues.%2_asynchronous
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Auto transform")
|
||||
tooltip: qsTr("Automatically applies image transformation metadata such as EXIF orientation.")
|
||||
disabledState: !backendValues.%2_autoTransform.isAvailable
|
||||
@@ -143,12 +138,14 @@ Section {
|
||||
enabled: backendValues.%2_autoTransform.isAvailable
|
||||
text: backendValues.%2_autoTransform.valueToString
|
||||
backendValue: backendValues.%2_autoTransform
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Caches the image.")
|
||||
disabledState: !backendValues.%2_cache.isAvailable
|
||||
@@ -159,12 +156,14 @@ Section {
|
||||
enabled: backendValues.%2_cache.isAvailable
|
||||
text: backendValues.%2_cache.valueToString
|
||||
backendValue: backendValues.%2_cache
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Mipmap")
|
||||
tooltip: qsTr("Uses mipmap filtering when the image is scaled or transformed.")
|
||||
disabledState: !backendValues.%2_mipmap.isAvailable
|
||||
@@ -175,12 +174,14 @@ Section {
|
||||
enabled: backendValues.%2_mipmap.isAvailable
|
||||
text: backendValues.%2_mipmap.valueToString
|
||||
backendValue: backendValues.%2_mipmap
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Mirror")
|
||||
tooltip: qsTr("Inverts the image horizontally.")
|
||||
disabledState: !backendValues.%2_mirror.isAvailable
|
||||
@@ -191,12 +192,14 @@ Section {
|
||||
enabled: backendValues.%2_mirror.isAvailable
|
||||
text: backendValues.%2_mirror.valueToString
|
||||
backendValue: backendValues.%2_mirror
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Smooth")
|
||||
tooltip: qsTr("Smoothly filters the image when it is scaled or transformed.")
|
||||
disabledState: !backendValues.%2_smooth.isAvailable
|
||||
@@ -207,8 +210,10 @@ Section {
|
||||
enabled: backendValues.%2_smooth.isAvailable
|
||||
text: backendValues.%2_smooth.valueToString
|
||||
backendValue: backendValues.%2_smooth
|
||||
implicitWidth: 180
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
@@ -8,10 +8,9 @@ SecondColumnLayout {
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
backendValue: backendValues.%2
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
@@ -1,18 +1,18 @@
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.%2
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
}
|
||||
ExpandingSpacer {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
@@ -1,69 +1,55 @@
|
||||
// Dummy comment to consume the first argument and suppress warnings %1
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Color")
|
||||
leftPadding: 8
|
||||
rightPadding: 0
|
||||
caption: "%1" + " - " + qsTr("Rectangle")
|
||||
expanded: false
|
||||
level: 2
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Color")
|
||||
backendValue: backendValues.%2_color
|
||||
supportGradient: true
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Border Color")
|
||||
expanded: false
|
||||
level: 2
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Border Color")
|
||||
backendValue: backendValues.%2_border_color
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Rectangle")
|
||||
expanded: false
|
||||
level: 2
|
||||
level: 1
|
||||
|
||||
SectionLayout {
|
||||
rows: 2
|
||||
Label {
|
||||
text: qsTr("Border")
|
||||
PropertyLabel { text: qsTr("Color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.%2_color
|
||||
supportGradient: true
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Border Color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.%2_border_color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Border") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.%2_border_width
|
||||
hasSlider: true
|
||||
Layout.preferredWidth: 120
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Radius")
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Radius") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.%2_radius
|
||||
hasSlider: true
|
||||
Layout.preferredWidth: 120
|
||||
minimumValue: 0
|
||||
maximumValue: Math.min(backendValues.height.value, backendValues.width.value) / 2
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
@@ -6,9 +6,10 @@ Label {
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
backendValue: backendValues.%2
|
||||
Layout.fillWidth: true
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
@@ -24,7 +24,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
AutoTypes {
|
||||
imports: [ "import HelperWidgets 2.0", "import QtQuick 2.15", "import QtQuick.Layouts 1.15" ]
|
||||
imports: [ "import HelperWidgets 2.0",
|
||||
"import QtQuick 2.15",
|
||||
"import QtQuick.Layouts 1.15",
|
||||
"import StudioTheme 1.0 as StudioTheme" ]
|
||||
|
||||
Type {
|
||||
typeNames: ["int"]
|
||||
@@ -50,7 +53,6 @@ AutoTypes {
|
||||
Type {
|
||||
typeNames: ["color", "QColor"]
|
||||
sourceFile: "ColorEditorTemplate.template"
|
||||
separateSection: true
|
||||
}
|
||||
|
||||
Type {
|
||||
|
@@ -1,107 +1,153 @@
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Text")
|
||||
leftPadding: 8
|
||||
rightPadding: 0
|
||||
caption: "%1" + " - " + qsTr("Text")
|
||||
expanded: false
|
||||
level: 2
|
||||
level: 1
|
||||
|
||||
SectionLayout {
|
||||
columns: 2
|
||||
rows: 3
|
||||
Label {
|
||||
text: qsTr("Text")
|
||||
}
|
||||
LineEdit {
|
||||
backendValue: backendValues.%2_text
|
||||
Layout.fillWidth: true
|
||||
PropertyLabel { text: qsTr("Text") }
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
backendValue: backendValues.%2_text
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Wrap mode")
|
||||
PropertyLabel { text: qsTr("Text color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.%2_color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
ComboBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.%2_wrapMode
|
||||
scope: "Text"
|
||||
model: ["NoWrap", "WordWrap", "WrapAnywhere", "WrapAtWordBoundaryOrAnywhere"]
|
||||
PropertyLabel { text: qsTr("Wrap mode") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.%2_wrapMode
|
||||
scope: "Text"
|
||||
model: ["NoWrap", "WordWrap", "WrapAnywhere", "WrapAtWordBoundaryOrAnywhere"]
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Elide")
|
||||
PropertyLabel { text: qsTr("Elide") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.%2_elide
|
||||
scope: "Text"
|
||||
model: ["ElideNone", "ElideLeft", "ElideMiddle", "ElideRight"]
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
ComboBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.%2_elide
|
||||
scope: "Text"
|
||||
model: ["ElideNone", "ElideLeft", "ElideMiddle", "ElideRight"]
|
||||
PropertyLabel { text: qsTr("Alignment") }
|
||||
|
||||
SecondColumnLayout {
|
||||
AligmentHorizontalButtons {
|
||||
id: horizontalAlignmentButtons
|
||||
backendValue: backendValues.%2_horizontalAlignment;
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.controlLabelWidth
|
||||
+ StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
- horizontalAlignmentButtons.implicitWidth
|
||||
}
|
||||
|
||||
AligmentVerticalButtons {
|
||||
backendValue: backendValues.%2_verticalAlignment;
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Alignment")
|
||||
PropertyLabel { text: qsTr("Format") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["PlainText", "RichText", "AutoText"]
|
||||
backendValue: backendValues.%2_textFormat
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
AligmentHorizontalButtons {
|
||||
backendValue: backendValues.%2_horizontalAlignment;
|
||||
|
||||
}
|
||||
|
||||
Label {
|
||||
text: ("")
|
||||
}
|
||||
|
||||
AligmentVerticalButtons {
|
||||
backendValue: backendValues.%2_verticalAlignment;
|
||||
}
|
||||
|
||||
|
||||
Label {
|
||||
text: qsTr("Format")
|
||||
}
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["PlainText", "RichText", "AutoText"]
|
||||
backendValue: backendValues.%2_textFormat
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Render type")
|
||||
toolTip: qsTr("Override the default rendering type for this item.")
|
||||
}
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["QtRendering", "NativeRendering"]
|
||||
backendValue: backendValues.%2_renderType
|
||||
Layout.fillWidth: true
|
||||
tooltip: qsTr("Overrides the default rendering type for this component.")
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Font size mode")
|
||||
toolTip: qsTr("Specifies how the font size of the displayed text is determined.")
|
||||
}
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["FixedSize", "HorizontalFit", "VerticalFit", "Fit"]
|
||||
backendValue: backendValues.%2_fontSizeMode
|
||||
Layout.fillWidth: true
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["QtRendering", "NativeRendering"]
|
||||
backendValue: backendValues.%2_renderType
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Size mode")
|
||||
tooltip: qsTr("Specifies how the font size of the displayed text is determined.")
|
||||
}
|
||||
|
||||
Label {
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Text"
|
||||
model: ["FixedSize", "HorizontalFit", "VerticalFit", "Fit"]
|
||||
backendValue: backendValues.%2_fontSizeMode
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Line height")
|
||||
tooltip: qsTr("Sets the line height for the text.")
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: (backendValues.%2_lineHeight === undefined) ? dummyBackendValue : backendValues.lineHeight
|
||||
maximumValue: 500
|
||||
minimumValue: 0
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: (backendValues.%2_lineHeight === undefined) ? dummyBackendValue : backendValues.lineHeight
|
||||
maximumValue: 500
|
||||
minimumValue: 0
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,14 +1,12 @@
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: "%1"
|
||||
tooltip: "%1"
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
UrlChooser {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.%2
|
||||
backendValue: backendValues.%2
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,9 +23,10 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
@@ -33,182 +34,120 @@ Section {
|
||||
caption: qsTr("Advanced")
|
||||
|
||||
SectionLayout {
|
||||
columns: 2
|
||||
|
||||
Label {
|
||||
text: qsTr("Origin")
|
||||
disabledState: !backendValues.transformOrigin.isAvailable
|
||||
}
|
||||
|
||||
OriginControl {
|
||||
backendValue: backendValues.transformOrigin
|
||||
enabled: backendValues.transformOrigin.isAvailable
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Scale")
|
||||
disabledState: !backendValues.scale.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.scale
|
||||
hasSlider: true
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
minimumValue: -10
|
||||
maximumValue: 10
|
||||
Layout.preferredWidth: 140
|
||||
enabled: backendValues.scale.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Rotation")
|
||||
disabledState: !backendValues.rotation.isAvailable
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.rotation
|
||||
hasSlider: true
|
||||
decimals: 2
|
||||
minimumValue: -360
|
||||
maximumValue: 360
|
||||
Layout.preferredWidth: 140
|
||||
enabled: backendValues.rotation.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: "Z"
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.z
|
||||
hasSlider: true
|
||||
minimumValue: -100
|
||||
maximumValue: 100
|
||||
Layout.preferredWidth: 140
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("State")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
|
||||
ComboBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.state
|
||||
model: allStateNames
|
||||
valueType: ComboBox.String
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: majorQtQuickVersion > 1
|
||||
text: qsTr("Enabled")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: majorQtQuickVersion > 1
|
||||
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.enabled
|
||||
text: qsTr("Accept mouse and keyboard events")
|
||||
}
|
||||
ExpandingSpacer {
|
||||
text: backendValues.enabled.valueToString
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: majorQtQuickVersion > 1
|
||||
text: qsTr("Smooth")
|
||||
disabledState: !backendValues.smooth.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: majorQtQuickVersion > 1
|
||||
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.smooth
|
||||
text: qsTr("Smooth sampling active")
|
||||
text: backendValues.smooth.valueToString
|
||||
enabled: backendValues.smooth.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: majorQtQuickVersion > 1
|
||||
text: qsTr("Antialiasing")
|
||||
disabledState: !backendValues.antialiasing.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: majorQtQuickVersion > 1
|
||||
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.antialiasing
|
||||
text: qsTr("Anti-aliasing active")
|
||||
text: backendValues.antialiasing.valueToString
|
||||
enabled: backendValues.antialiasing.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Focus")
|
||||
tooltip: qsTr("Sets focus on the component within the enclosing focus scope.")
|
||||
disabledState: !backendValues.focus.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.focus
|
||||
text: backendValues.focus.valueToString
|
||||
enabled: backendValues.focus.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Active focus on tab")
|
||||
PropertyLabel {
|
||||
text: qsTr("Focus on Tab")
|
||||
tooltip: qsTr("Adds the component to the tab focus chain.")
|
||||
disabledState: !backendValues.activeFocusOnTab.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.activeFocusOnTab
|
||||
text: backendValues.activeFocusOnTab.valueToString
|
||||
enabled: backendValues.activeFocusOnTab.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Baseline offset")
|
||||
PropertyLabel {
|
||||
text: qsTr("Baseline Offset")
|
||||
tooltip: qsTr("Position of the component's baseline in local coordinates.")
|
||||
disabledState: !backendValues.baselineOffset.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.baselineOffset
|
||||
hasSlider: true
|
||||
decimals: 0
|
||||
minimumValue: -1000
|
||||
maximumValue: 1000
|
||||
Layout.preferredWidth: 140
|
||||
enabled: backendValues.baselineOffset.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,17 +23,23 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: root
|
||||
|
||||
readonly property bool warningVisible: alignDistribute.multiSelection &&
|
||||
(alignDistribute.selectionHasAnchors ||
|
||||
!alignDistribute.selectionExclusivlyItems ||
|
||||
alignDistribute.selectionContainsRootItem)
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
caption: qsTr("Align")
|
||||
caption: qsTr("Alignment")
|
||||
|
||||
SectionLayout {
|
||||
enabled: alignDistribute.multiSelection &&
|
||||
@@ -46,16 +52,15 @@ Section {
|
||||
modelNodeBackendProperty: modelNodeBackend
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Align objects")
|
||||
width: 120
|
||||
Layout.columnSpan: 2
|
||||
}
|
||||
PropertyLabel { text: qsTr("Alignment") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
RowLayout {
|
||||
Layout.columnSpan: 2
|
||||
Row {
|
||||
id: horizontalAlignmentButtons
|
||||
spacing: -StudioTheme.Values.border
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignLeft
|
||||
tooltip: qsTr("Align left edges.")
|
||||
@@ -63,6 +68,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignCenterHorizontal
|
||||
tooltip: qsTr("Align horizontal centers.")
|
||||
@@ -70,6 +76,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignRight
|
||||
tooltip: qsTr("Align right edges.")
|
||||
@@ -79,8 +86,18 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.controlLabelWidth
|
||||
+ StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
- horizontalAlignmentButtons.implicitWidth
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: -StudioTheme.Values.border
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignTop
|
||||
tooltip: qsTr("Align top edges.")
|
||||
@@ -88,6 +105,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignCenterVertical
|
||||
tooltip: qsTr("Align vertical centers.")
|
||||
@@ -95,6 +113,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.alignBottom
|
||||
tooltip: qsTr("Align bottom edges.")
|
||||
@@ -105,16 +124,15 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Distribute objects")
|
||||
width: 120
|
||||
Layout.columnSpan: 2
|
||||
}
|
||||
PropertyLabel { text: qsTr("Distribute Objects") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
RowLayout {
|
||||
Layout.columnSpan: 2
|
||||
Row {
|
||||
id: horizontalDistributionButtons
|
||||
spacing: -StudioTheme.Values.border
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeLeft
|
||||
tooltip: qsTr("Distribute left edges.")
|
||||
@@ -122,6 +140,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeCenterHorizontal
|
||||
tooltip: qsTr("Distribute horizontal centers.")
|
||||
@@ -129,6 +148,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeRight
|
||||
tooltip: qsTr("Distribute right edges.")
|
||||
@@ -138,8 +158,18 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.controlLabelWidth
|
||||
+ StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
- horizontalDistributionButtons.implicitWidth
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: -StudioTheme.Values.border
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeTop
|
||||
tooltip: qsTr("Distribute top edges.")
|
||||
@@ -147,6 +177,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeCenterVertical
|
||||
tooltip: qsTr("Distribute vertical centers.")
|
||||
@@ -154,6 +185,7 @@ Section {
|
||||
alignToComboBox.currentEnum,
|
||||
keyObjectComboBox.currentText)
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeBottom
|
||||
tooltip: qsTr("Distribute bottom edges.")
|
||||
@@ -164,16 +196,14 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Distribute spacing")
|
||||
width: 120
|
||||
Layout.columnSpan: 2
|
||||
}
|
||||
PropertyLabel { text: qsTr("Distribute Spacing") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
RowLayout {
|
||||
Layout.columnSpan: 2
|
||||
Row {
|
||||
spacing: -StudioTheme.Values.border
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeSpacingHorizontal
|
||||
tooltip: qsTr("Distribute spacing horizontally.")
|
||||
@@ -183,6 +213,7 @@ Section {
|
||||
distanceSpinBox.realValue,
|
||||
buttonRow.getDistributeDirection())
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
buttonIcon: StudioTheme.Constants.distributeSpacingVertical
|
||||
tooltip: qsTr("Distribute spacing vertically.")
|
||||
@@ -202,8 +233,7 @@ Section {
|
||||
id: group
|
||||
}
|
||||
|
||||
function getDistributeDirection()
|
||||
{
|
||||
function getDistributeDirection() {
|
||||
if (buttonLeftToRight.checked)
|
||||
return AlignDistribute.TopLeft
|
||||
else if (buttonCenter.checked)
|
||||
@@ -221,33 +251,42 @@ Section {
|
||||
checkable: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonLeftToRight
|
||||
buttonIcon: StudioTheme.Constants.distributeOriginTopLeft
|
||||
checkable: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonCenter
|
||||
buttonIcon: StudioTheme.Constants.distributeOriginCenter
|
||||
checkable: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonRightToLeft
|
||||
buttonIcon: StudioTheme.Constants.distributeOriginBottomRight
|
||||
checkable: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.RealSpinBox {
|
||||
id: distanceSpinBox
|
||||
width: 64
|
||||
actionIndicatorVisible: false
|
||||
realFrom: -1000
|
||||
realTo: 1000
|
||||
enabled: !buttonNone.checked
|
||||
}
|
||||
PropertyLabel { text: qsTr("Pixel Spacing") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
StudioControls.RealSpinBox {
|
||||
id: distanceSpinBox
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
actionIndicatorVisible: false
|
||||
realFrom: -1000
|
||||
realTo: 1000
|
||||
enabled: !buttonNone.checked
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,14 +296,16 @@ Section {
|
||||
selectionOnly: true
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Align to")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Align to") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: alignToComboBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
property int currentEnum: alignTargets.get(alignToComboBox.currentIndex).value
|
||||
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
textRole: "text"
|
||||
model: ListModel {
|
||||
id: alignTargets
|
||||
@@ -274,21 +315,24 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Key object")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Key Object") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: keyObjectComboBox
|
||||
|
||||
property string lastSelectedItem: ""
|
||||
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
enabled: alignToComboBox.currentIndex === 2
|
||||
model: itemFilterModel.itemModel
|
||||
Layout.fillWidth: true
|
||||
property string lastSelectedItem: ""
|
||||
|
||||
onCompressedActivated: lastSelectedItem = keyObjectComboBox.currentText
|
||||
|
||||
onModelChanged: {
|
||||
var idx = model.indexOf(keyObjectComboBox.lastSelectedItem)
|
||||
if (idx !== -1)
|
||||
@@ -298,56 +342,55 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
columns: 1
|
||||
Layout.topMargin: 30
|
||||
Layout.columnSpan: 2
|
||||
visible: alignDistribute.multiSelection &&
|
||||
(alignDistribute.selectionHasAnchors ||
|
||||
!alignDistribute.selectionExclusivlyItems ||
|
||||
alignDistribute.selectionContainsRootItem)
|
||||
PropertyLabel {
|
||||
text: qsTr("Warning")
|
||||
visible: root.warningVisible
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
|
||||
Text {
|
||||
id: warningTitle
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
font.weight: Font.Bold
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
text: qsTr("Warning")
|
||||
SecondColumnLayout {
|
||||
visible: root.warningVisible
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
Text {
|
||||
id: warningRoot
|
||||
visible: alignDistribute.selectionContainsRootItem
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- The selection contains the root component.")
|
||||
}
|
||||
Text {
|
||||
id: warningNonVisual
|
||||
visible: !alignDistribute.selectionExclusivlyItems
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- The selection contains a non-visual component.")
|
||||
}
|
||||
Text {
|
||||
id: warningAnchors
|
||||
visible: alignDistribute.selectionHasAnchors
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- A component in the selection uses anchors.")
|
||||
|
||||
Column {
|
||||
Text {
|
||||
id: warningRoot
|
||||
visible: alignDistribute.selectionContainsRootItem
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- The selection contains the root component.")
|
||||
}
|
||||
|
||||
Text {
|
||||
id: warningNonVisual
|
||||
visible: !alignDistribute.selectionExclusivlyItems
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- The selection contains a non-visual component.")
|
||||
}
|
||||
|
||||
Text {
|
||||
id: warningAnchors
|
||||
visible: alignDistribute.selectionHasAnchors
|
||||
Layout.fillWidth: true
|
||||
font.family: StudioTheme.Constants.font.family
|
||||
font.pixelSize: StudioTheme.Values.myFontSize
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("- A component in the selection uses anchors.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -24,217 +24,151 @@
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
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
|
||||
|
||||
RowLayout {
|
||||
SectionLayout {
|
||||
id: anchorRow
|
||||
|
||||
opacity: enabled ? 1 : 0.5
|
||||
|
||||
property alias iconSource: iconLabel.icon
|
||||
|
||||
property variant anchorMargin
|
||||
|
||||
property alias iconSource: iconLabel.icon
|
||||
property alias targetName: targetComboBox.targetName
|
||||
property alias currentText: targetComboBox.currentText
|
||||
|
||||
property alias relativeTarget: buttonRow.relativeTarget
|
||||
|
||||
signal targetChanged
|
||||
property alias buttonRow: buttonRow
|
||||
|
||||
property bool verticalAnchor
|
||||
|
||||
property bool invertRelativeTargets: false
|
||||
|
||||
property bool showAlternativeTargets: true
|
||||
|
||||
signal targetChanged
|
||||
signal sameEdgeButtonClicked
|
||||
signal centerButtonClicked
|
||||
signal oppositeEdgeButtonClicked
|
||||
|
||||
property alias buttonRow: buttonRow
|
||||
|
||||
readonly property color __defaultTextColor: StudioTheme.Values.themeTextColor
|
||||
PropertyLabel { text: qsTr("Target") }
|
||||
|
||||
IconLabel {
|
||||
id: iconLabel
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.topMargin: 4
|
||||
Layout.leftMargin: 4
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
Layout.fillWidth: true
|
||||
rows: 2
|
||||
columns: 2
|
||||
|
||||
Label {
|
||||
text: qsTr("Target")
|
||||
color: __defaultTextColor
|
||||
elide: Text.ElideRight
|
||||
Layout.minimumWidth: Math.min(60, Layout.preferredWidth + 10)
|
||||
SecondColumnLayout {
|
||||
IconLabel {
|
||||
id: iconLabel
|
||||
implicitWidth: StudioTheme.Values.actionIndicatorWidth
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
}
|
||||
|
||||
TargetComboBox {
|
||||
id: targetComboBox
|
||||
onCurrentTextChanged: {
|
||||
anchorRow.targetChanged();
|
||||
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
onCurrentTextChanged: anchorRow.targetChanged()
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Margin") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: -0xffff
|
||||
maximumValue: 0xffff
|
||||
backendValue: anchorMargin
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnGap
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
+ (StudioTheme.Values.twoControlColumnWidth - buttonRow.width)
|
||||
}
|
||||
|
||||
StudioControls.ButtonRow {
|
||||
id: buttonRow
|
||||
|
||||
property variant relativeTarget: anchorBackend.relativeAnchorTargetTop
|
||||
|
||||
actionIndicatorVisible: false
|
||||
|
||||
onRelativeTargetChanged: {
|
||||
buttonSameEdge.checked = false
|
||||
buttonCenter.checked = false
|
||||
buttonOppositeEdge.checked = false
|
||||
|
||||
if (relativeTarget === AnchorBindingProxy.SameEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonSameEdge.checked = true
|
||||
} else {
|
||||
buttonOppositeEdge.checked = true
|
||||
}
|
||||
} else if (relativeTarget === AnchorBindingProxy.OppositeEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonOppositeEdge.checked = true
|
||||
} else {
|
||||
buttonSameEdge.checked = true
|
||||
}
|
||||
} else if (relativeTarget === AnchorBindingProxy.Center) {
|
||||
buttonCenter.checked = true
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.ButtonGroup { id: group }
|
||||
|
||||
AbstractButton {
|
||||
id: buttonSameEdge
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.anchorTop
|
||||
: StudioTheme.Constants.anchorLeft
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the top of the target.")
|
||||
: qsTr("Anchor to the left of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
sameEdgeButtonClicked()
|
||||
else
|
||||
oppositeEdgeButtonClicked()
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonCenter
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.centerVertical
|
||||
: StudioTheme.Constants.centerHorizontal
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the vertical center of the target.")
|
||||
: qsTr("Anchor to the horizontal center of the target.")
|
||||
onClicked: centerButtonClicked()
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonOppositeEdge
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.anchorBottom
|
||||
: StudioTheme.Constants.anchorRight
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the bottom of the target.")
|
||||
: qsTr("Anchor to the right of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
oppositeEdgeButtonClicked()
|
||||
else
|
||||
sameEdgeButtonClicked()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Margin")
|
||||
color: __defaultTextColor
|
||||
elide: Text.ElideRight
|
||||
Layout.minimumWidth: Math.min(60, Layout.preferredWidth + 10)
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
SpinBox {
|
||||
maximumValue: 0xffff
|
||||
minimumValue: -0xffff
|
||||
backendValue: anchorMargin
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
StudioControls.ButtonRow {
|
||||
id: buttonRow
|
||||
actionIndicatorVisible: false
|
||||
|
||||
property variant relativeTarget: anchorBackend.relativeAnchorTargetTop
|
||||
|
||||
onRelativeTargetChanged: {
|
||||
|
||||
buttonSameEdge.checked = false
|
||||
buttonCenter.checked = false
|
||||
buttonOppositeEdge.checked = false
|
||||
|
||||
if (relativeTarget == AnchorBindingProxy.SameEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonSameEdge.checked = true
|
||||
} else {
|
||||
buttonOppositeEdge.checked = true
|
||||
}
|
||||
} else if (relativeTarget == AnchorBindingProxy.OppositeEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonOppositeEdge.checked = true
|
||||
} else {
|
||||
buttonSameEdge.checked = true
|
||||
}
|
||||
} else if (relativeTarget == AnchorBindingProxy.Center) {
|
||||
buttonCenter.checked = true
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.ButtonGroup {
|
||||
id: group
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
id: buttonSameEdge
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.anchorTop : StudioTheme.Constants.anchorLeft
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the top of the target.") : qsTr("Anchor to the left of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
sameEdgeButtonClicked();
|
||||
else
|
||||
oppositeEdgeButtonClicked();
|
||||
}
|
||||
}
|
||||
AbstractButton {
|
||||
id: buttonCenter
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.centerVertical : StudioTheme.Constants.centerHorizontal
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the vertical center of the target.") : qsTr("Anchor to the horizontal center of the target.")
|
||||
onClicked: centerButtonClicked();
|
||||
}
|
||||
AbstractButton {
|
||||
id: buttonOppositeEdge
|
||||
buttonIcon: verticalAnchor ? StudioTheme.Constants.anchorBottom : StudioTheme.Constants.anchorRight
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: group
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the bottom of the target.") : qsTr("Anchor to the right of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
oppositeEdgeButtonClicked();
|
||||
else
|
||||
sameEdgeButtonClicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
ButtonRow {
|
||||
id: buttonRow
|
||||
|
||||
property variant relativeTarget: anchorBackend.relativeAnchorTargetTop
|
||||
|
||||
onRelativeTargetChanged: {
|
||||
if (relativeTarget == AnchorBindingProxy.SameEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonRow.initalChecked = 0
|
||||
buttonRow.checkedIndex = 0
|
||||
} else {
|
||||
buttonRow.initalChecked = 2
|
||||
buttonRow.checkedIndex = 2
|
||||
}
|
||||
} else if (relativeTarget == AnchorBindingProxy.OppositeEdge) {
|
||||
if (!invertRelativeTargets) {
|
||||
buttonRow.initalChecked = 2
|
||||
buttonRow.checkedIndex = 2
|
||||
} else {
|
||||
buttonRow.initalChecked = 0
|
||||
buttonRow.checkedIndex = 0
|
||||
}
|
||||
} else if (relativeTarget == AnchorBindingProxy.Center) {
|
||||
buttonRow.initalChecked = 1
|
||||
buttonRow.checkedIndex = 1
|
||||
}
|
||||
}
|
||||
|
||||
exclusive: true
|
||||
ButtonRowButton {
|
||||
iconSource: "image://icons/anchor-" + (verticalAnchor ? "top" : "left")
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the top of the target.") : qsTr("Anchor to the left of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
sameEdgeButtonClicked();
|
||||
else
|
||||
oppositeEdgeButtonClicked();
|
||||
}
|
||||
}
|
||||
|
||||
ButtonRowButton {
|
||||
iconSource: "image://icons/anchor-" + (verticalAnchor ? "vertical" : "horizontal")
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the vertical center of the target.") : qsTr("Anchor to the horizontal center of the target.")
|
||||
|
||||
onClicked: centerButtonClicked();
|
||||
}
|
||||
|
||||
ButtonRowButton {
|
||||
iconSource: "image://icons/anchor-" + (verticalAnchor ? "bottom" : "right")
|
||||
tooltip: verticalAnchor ? qsTr("Anchor to the bottom of the target.") : qsTr("Anchor to the right of the target.")
|
||||
onClicked: {
|
||||
if (!invertRelativeTargets)
|
||||
oppositeEdgeButtonClicked();
|
||||
else
|
||||
sameEdgeButtonClicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,43 +23,49 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
ImageSpecifics {
|
||||
ImageSection {
|
||||
caption: qsTr("Animated Image")
|
||||
}
|
||||
|
||||
Section {
|
||||
caption: qsTr("Animation Settings")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Animated Image")
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Speed")
|
||||
disabledState: !backendValues.speed.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.speed
|
||||
hasSlider: true
|
||||
decimals: 2
|
||||
minimumValue: 0
|
||||
maximumValue: 100
|
||||
Layout.preferredWidth: 140
|
||||
enabled: backendValues.speed.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Paused")
|
||||
tooltip: qsTr("Whether the animated image is paused.")
|
||||
disabledState: !backendValues.paused.isAvailable
|
||||
@@ -67,15 +73,17 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.paused.isAvailable
|
||||
text: backendValues.paused.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.paused
|
||||
implicitWidth: 180
|
||||
enabled: backendValues.paused.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Playing")
|
||||
tooltip: qsTr("Whether the animated image is playing.")
|
||||
disabledState: !backendValues.playing.isAvailable
|
||||
@@ -83,11 +91,13 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.playing.isAvailable
|
||||
text: backendValues.playing.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.playing
|
||||
implicitWidth: 180
|
||||
enabled: backendValues.playing.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,14 +23,16 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: section
|
||||
caption: qsTr("Animation")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
@@ -38,89 +40,122 @@ Section {
|
||||
property bool showEasingCurve: false
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Running")
|
||||
tooltip: qsTr("Whether the animation is running.")
|
||||
tooltip: qsTr("Whether the animation is running and paused.")
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
text: backendValues.running.valueToString
|
||||
backendValue: backendValues.running
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: StudioTheme.Constants.play
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.running
|
||||
enabled: backendValue.isAvailable
|
||||
fontFamily: StudioTheme.Constants.iconFont.family
|
||||
fontPixelSize: StudioTheme.Values.myIconFontSize
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: StudioTheme.Constants.pause
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.paused
|
||||
enabled: backendValue.isAvailable
|
||||
fontFamily: StudioTheme.Constants.iconFont.family
|
||||
fontPixelSize: StudioTheme.Values.myIconFontSize
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Paused")
|
||||
tooltip: qsTr("Whether the animation is paused.")
|
||||
disabledState: !backendValues.paused.isAvailable
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
text: backendValues.paused.valueToString
|
||||
backendValue: backendValues.paused
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Loops")
|
||||
tooltip: qsTr("Number of times the animation should play.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
id: loopSpinBox
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.loops
|
||||
maximumValue: 9999999
|
||||
minimumValue: -1
|
||||
backendValue: backendValues.loops
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
StudioControls.InfinityLoopIndicator {
|
||||
id: infinityLoopIndicator
|
||||
|
||||
infinite: backendValues.loops.value === -1 ? true : false
|
||||
|
||||
onInfiniteChanged: {
|
||||
if (infinityLoopIndicator.infinite === true)
|
||||
backendValues.loops.value = -1
|
||||
else
|
||||
backendValues.loops.value = ((backendValues.loops.value < 0) ? 1 : backendValues.loops.value)
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
visible: section.showDuration
|
||||
PropertyLabel {
|
||||
text: qsTr("Duration")
|
||||
tooltip: qsTr("Duration of the animation in milliseconds.")
|
||||
visible: section.showDuration
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: section.showDuration
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
backendValue: backendValues.duration
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Always run to end")
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Run to end")
|
||||
tooltip: qsTr("Runs the animation to completion when it is stopped.")
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
text: backendValues.alwaysRunToEnd.valueToString
|
||||
backendValue: backendValues.alwaysRunToEnd
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.alwaysRunToEnd.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.alwaysRunToEnd
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
visible: section.showEasingCurve
|
||||
PropertyLabel {
|
||||
text: qsTr("Easing curve")
|
||||
tooltip: qsTr("Defines a custom easing curve.")
|
||||
visible: section.showEasingCurve
|
||||
}
|
||||
|
||||
BoolButtonRowButton {
|
||||
visible: section.showEasingCurve
|
||||
buttonIcon: StudioTheme.Constants.curveDesigner
|
||||
|
||||
EasingCurveEditor {
|
||||
id: easingCurveEditor
|
||||
modelNodeBackendProperty: modelNodeBackend
|
||||
}
|
||||
onClicked: easingCurveEditor.runDialog()
|
||||
|
||||
onClicked: easingCurveEditor.runDialog()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,50 +23,67 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: section
|
||||
caption: qsTr("Animation Targets")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Target")
|
||||
tooltip: qsTr("Target to animate the properties of.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick.QtObject"
|
||||
validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ }
|
||||
backendValue: backendValues.target
|
||||
Layout.fillWidth: true
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Property")
|
||||
tooltip: qsTr("Property to animate.")
|
||||
}
|
||||
LineEdit {
|
||||
backendValue: backendValues.property
|
||||
Layout.fillWidth: true
|
||||
showTranslateCheckBox: false
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
backendValue: backendValues.property
|
||||
showTranslateCheckBox: false
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
Label {
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Properties")
|
||||
tooltip: qsTr("Properties to animate.")
|
||||
}
|
||||
LineEdit {
|
||||
backendValue: backendValues.properties
|
||||
Layout.fillWidth: true
|
||||
showTranslateCheckBox: false
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
backendValue: backendValues.properties
|
||||
showTranslateCheckBox: false
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,195 +23,193 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Border Image")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Source")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Source") }
|
||||
|
||||
SecondColumnLayout {
|
||||
UrlChooser {
|
||||
backendValue: backendValues.source
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Border left")
|
||||
PropertyLabel {
|
||||
text: qsTr("Source size")
|
||||
disabledState: !backendValues.sourceSize.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.sourceSize_width
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.sourceSize_height
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
LinkIndicator2D {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Tile mode H")
|
||||
disabledState: !backendValues.horizontalTileMode.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.horizontalTileMode
|
||||
model: ["Stretch", "Repeat", "Round"]
|
||||
scope: "BorderImage"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Tile mode V")
|
||||
disabledState: !backendValues.verticalTileMode.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
model: ["Stretch", "Repeat", "Round"]
|
||||
backendValue: backendValues.verticalTileMode
|
||||
scope: "BorderImage"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Border left") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.border_left
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Border right")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Border right") }
|
||||
|
||||
SecondColumnLayout {
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.border_right
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Border top")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Border top") }
|
||||
|
||||
SecondColumnLayout {
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.border_top
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Border bottom")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Border bottom") }
|
||||
|
||||
SecondColumnLayout {
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.border_bottom
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Horizontal tile mode")
|
||||
disabledState: !backendValues.horizontalTileMode.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["Stretch", "Repeat", "Round"]
|
||||
backendValue: backendValues.horizontalTileMode
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
scope: "BorderImage"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Vertical tile mode")
|
||||
disabledState: !backendValues.verticalTileMode.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["Stretch", "Repeat", "Round"]
|
||||
backendValue: backendValues.verticalTileMode
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
scope: "BorderImage"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Label {
|
||||
text: qsTr("Source size")
|
||||
disabledState: !backendValues.sourceSize.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.sourceSize_width.isAvailable
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.sourceSize_width
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
enabled: backendValue.isAvailable
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.sourceSize_height.isAvailable
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.sourceSize_height
|
||||
minimumValue: -2000
|
||||
maximumValue: 2000
|
||||
enabled: backendValue.isAvailable
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Mirror")
|
||||
tooltip: qsTr("Specifies whether the image should be horizontally inverted.")
|
||||
disabledState: !backendValues.mirror.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.mirror.isAvailable
|
||||
text: backendValues.mirror.valueToString
|
||||
backendValue: backendValues.mirror
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Mirror") // TODO remove Mirror checkbox when flipping is added to a global setion
|
||||
tooltip: qsTr("Specifies whether the image should be horizontally inverted.")
|
||||
disabledState: !backendValues.mirror.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.mirror.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.mirror
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Smooth")
|
||||
tooltip: qsTr("Specifies whether the image is smoothly filtered when scaled or transformed.")
|
||||
disabledState: !backendValues.smooth.isAvailable
|
||||
@@ -219,15 +217,17 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.smooth.isAvailable
|
||||
text: backendValues.smooth.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.smooth
|
||||
implicitWidth: 180
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Specifies whether the image should be cached.")
|
||||
disabledState: !backendValues.cache.isAvailable
|
||||
@@ -235,15 +235,17 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.cache.isAvailable
|
||||
text: backendValues.cache.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.cache
|
||||
implicitWidth: 180
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Asynchronous")
|
||||
tooltip: qsTr("Specifies that images on the local filesystem should be loaded asynchronously in a separate thread.")
|
||||
disabledState: !backendValues.asynchronous.isAvailable
|
||||
@@ -251,11 +253,13 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.asynchronous.isAvailable
|
||||
text: backendValues.asynchronous.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.asynchronous
|
||||
implicitWidth: 180
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,41 +23,41 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
caption: qsTr("Color Animation")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("To Color")
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.to
|
||||
supportGradient: false
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("From color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.from
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("To color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.to
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("From Color")
|
||||
AnimationTargetSection {}
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.from
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
AnimationTargetSection {
|
||||
|
||||
}
|
||||
|
||||
AnimationSection {
|
||||
showEasingCurve: true
|
||||
}
|
||||
AnimationSection { showEasingCurve: true }
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,37 +23,40 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Column")
|
||||
|
||||
Label {
|
||||
text: qsTr("Spacing")
|
||||
}
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("Spacing") }
|
||||
|
||||
ExpandingSpacer {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
}
|
||||
PaddingSection {}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,265 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
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 StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Component")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("Type") }
|
||||
|
||||
SecondColumnLayout {
|
||||
z: 2
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
RoundedPanel {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
height: StudioTheme.Values.height
|
||||
|
||||
Label {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: StudioTheme.Values.inputHorizontalPadding
|
||||
anchors.topMargin: StudioTheme.Values.typeLabelVerticalShift
|
||||
text: backendValues.className.value
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
anchors.fill: parent
|
||||
onDoubleClicked: {
|
||||
typeLineEdit.text = backendValues.className.value
|
||||
typeLineEdit.visible = !typeLineEdit.visible
|
||||
typeLineEdit.forceActiveFocus()
|
||||
}
|
||||
tooltip: qsTr("Changes the type of this component.")
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
ExpressionTextField {
|
||||
id: typeLineEdit
|
||||
z: 2
|
||||
completeOnlyTypes: true
|
||||
replaceCurrentTextByCompletion: true
|
||||
anchors.fill: parent
|
||||
visible: false
|
||||
fixedSize: true
|
||||
|
||||
property bool blockEditingFinished: false
|
||||
|
||||
onEditingFinished: {
|
||||
if (typeLineEdit.blockEditingFinished)
|
||||
return
|
||||
|
||||
typeLineEdit.blockEditingFinished = true
|
||||
|
||||
if (typeLineEdit.visible)
|
||||
changeTypeName(typeLineEdit.text.trim())
|
||||
|
||||
typeLineEdit.visible = false
|
||||
typeLineEdit.blockEditingFinished = false
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
|
||||
onRejected: {
|
||||
typeLineEdit.visible = false
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("id") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
width: StudioTheme.Values.singleControlColumnWidth
|
||||
backendValue: backendValues.id
|
||||
placeholderText: qsTr("id")
|
||||
text: backendValues.id.value
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
Rectangle {
|
||||
id: aliasIndicator
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
implicitWidth: StudioTheme.Values.iconAreaWidth // TODO dedicated value
|
||||
implicitHeight: StudioTheme.Values.height // TODO dedicated value
|
||||
z: 10
|
||||
|
||||
T.Label {
|
||||
id: aliasIndicatorIcon
|
||||
enabled: !modelNodeBackend.multiSelection && anchorBackend.hasParent
|
||||
anchors.fill: parent
|
||||
text: StudioTheme.Constants.alias
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
font.family: StudioTheme.Constants.iconFont.family
|
||||
font.pixelSize: StudioTheme.Values.myIconFontSize + 4 // TODO
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
states: [
|
||||
State {
|
||||
name: "default"
|
||||
when: !toolTipArea.containsMouse && !hasAliasExport
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hover"
|
||||
when: toolTipArea.containsMouse && !hasAliasExport
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColorHover
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "active"
|
||||
when: hasAliasExport
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColorInteraction
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "disable"
|
||||
when: !aliasIndicator.enabled
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColorDisabled
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
id: toolTipArea
|
||||
enabled: !modelNodeBackend.multiSelection && anchorBackend.hasParent
|
||||
anchors.fill: parent
|
||||
onClicked: toogleExportAlias()
|
||||
tooltip: qsTr("Exports this component as an alias property of the root component.")
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("id Annotation") }
|
||||
|
||||
SecondColumnLayout {
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.actionIndicatorWidth }
|
||||
|
||||
Row {
|
||||
spacing: -StudioTheme.Values.border
|
||||
visible: annotationEditor.hasAuxData
|
||||
|
||||
LineEdit {
|
||||
id: annotationEdit
|
||||
width: StudioTheme.Values.singleControlColumnWidth
|
||||
- editAnnotationButton.width
|
||||
- removeAnnotationButton.width
|
||||
+ 2 * StudioTheme.Values.border
|
||||
backendValue: backendValues.customId__AUX
|
||||
placeholderText: qsTr("customId")
|
||||
text: backendValue.value
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
onActiveFocusChanged: annotationEdit.z = activeFocus ? 10 : 0
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: editAnnotationButton
|
||||
buttonIcon: StudioTheme.Constants.edit
|
||||
onClicked: annotationEditor.showWidget()
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: removeAnnotationButton
|
||||
buttonIcon: StudioTheme.Constants.closeCross
|
||||
onClicked: annotationEditor.removeFullAnnotation()
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: addAnnotationButton
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
width: StudioTheme.Values.singleControlColumnWidth
|
||||
visible: !annotationEditor.hasAuxData
|
||||
buttonIcon: qsTr("add")
|
||||
iconFont: StudioTheme.Constants.font
|
||||
onClicked: annotationEditor.showWidget()
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
|
||||
AnnotationEditor {
|
||||
id: annotationEditor
|
||||
|
||||
modelNodeBackendProperty: modelNodeBackend
|
||||
|
||||
property bool hasAuxData: (annotationEditor.hasAnnotation || annotationEditor.hasCustomId)
|
||||
|
||||
onModelNodeBackendChanged: checkAux()
|
||||
onCustomIdChanged: checkAux()
|
||||
onAnnotationChanged: checkAux()
|
||||
|
||||
function checkAux() {
|
||||
hasAuxData = (annotationEditor.hasAnnotation || annotationEditor.hasCustomId)
|
||||
annotationEdit.update()
|
||||
}
|
||||
|
||||
onAccepted: hideWidget()
|
||||
onCanceled: hideWidget()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,152 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Button content")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Text")
|
||||
tooltip: qsTr("The text displayed on the button.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.text
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Display")
|
||||
tooltip: qsTr("Determines how the icon and text are displayed within the button.")
|
||||
disabledState: !backendValues.display.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.display
|
||||
model: [ "IconOnly", "TextOnly", "TextBesideIcon" ]
|
||||
scope: "AbstractButton"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Checkable")
|
||||
tooltip: qsTr("Whether the button is checkable.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.checkable.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.checkable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Checked")
|
||||
tooltip: qsTr("Whether the button is checked.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.checked.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.checked
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Exclusive")
|
||||
tooltip: qsTr("Whether the button is exclusive.")
|
||||
disabledState: !backendValues.autoExclusive.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.autoExclusive.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.autoExclusive
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Auto-repeat")
|
||||
tooltip: qsTr("Whether the button repeats pressed(), released() and clicked() signals while the button is pressed and held down.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.autoRepeat.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.autoRepeat
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Busy indicator")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Running")
|
||||
tooltip: qsTr("Whether the busy indicator is currently indicating activity.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: qsTr("live")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.running
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,79 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: section
|
||||
caption: qsTr("Button")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Appearance")
|
||||
tooltip: qsTr("Whether the button is flat and/or highlighted.")
|
||||
disabledState: !backendValues.flat.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: qsTr("Flat")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.flat
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Highlight")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlighted
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
ButtonSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
CheckSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
CheckSection {}
|
||||
|
||||
ItemDelegateSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,84 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Check box")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Check state")
|
||||
tooltip: qsTr("The current check state.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.checkState
|
||||
model: [ "Unchecked", "PartiallyChecked", "Checked" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Tri-state")
|
||||
tooltip: qsTr("Whether the checkbox has three states.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.tristate.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.tristate
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,141 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Combo Box")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Text role")
|
||||
tooltip: qsTr("The model role used for displaying text.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.textRole
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Display text")
|
||||
tooltip: qsTr("Holds the text that is displayed on the combo box button.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.displayText
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Current")
|
||||
tooltip: qsTr("The index of the current item.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.currentIndex
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Flat")
|
||||
tooltip: qsTr("Whether the combo box button is flat.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.flat.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.flat
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Editable")
|
||||
tooltip: qsTr("Whether the combo box is editable.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.editable.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.editable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Container")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Current index")
|
||||
tooltip: qsTr("The index of the current item.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.currentIndex
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,128 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Control")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Enable")
|
||||
tooltip: qsTr("Whether the control is enabled and hover events are received.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: qsTr("Control")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.enabled
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Hover")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.hoverEnabled
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Focus policy")
|
||||
tooltip: qsTr("Focus policy of the control.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.focusPolicy
|
||||
model: [ "TabFocus", "ClickFocus", "StrongFocus", "WheelFocus", "NoFocus" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Spacing")
|
||||
tooltip: qsTr("Spacing between internal elements of the control.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.spacing
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Wheel")
|
||||
tooltip: qsTr("Whether control accepts wheel events.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.wheelEnabled.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.wheelEnabled
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,84 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Delay button")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Delay")
|
||||
tooltip: qsTr("The delay in milliseconds.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 9999999
|
||||
decimals: 0
|
||||
stepSize: 1
|
||||
backendValue: backendValues.delay
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "ms" }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,197 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Dial")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value")
|
||||
tooltip: qsTr("The current value of the dial and whether it provides live value updates.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.value
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("live")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.live
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("The starting value of the dial range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.from
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("The ending value of the dial range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.to
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Step size")
|
||||
tooltip: qsTr("The step size of the dial.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.stepSize
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Snap mode")
|
||||
tooltip: qsTr("The snap mode of the dial.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.snapMode
|
||||
model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
|
||||
scope: "Dial"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Input mode")
|
||||
tooltip: qsTr("How the dial tracks movement.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.inputMode
|
||||
model: [ "Circular", "Horizontal", "Vertical" ]
|
||||
scope: "Dial"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Wrap")
|
||||
tooltip: qsTr("Whether the dial wraps when dragged.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.wrap.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.wrap
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
PaneSection {
|
||||
caption: qsTr("Frame")
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,76 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Group box")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Title")
|
||||
tooltip: qsTr("The title of the group box.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.title
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaneSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,145 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Inset")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("Vertical") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 10000
|
||||
minimumValue: -10000
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
backendValue: backendValues.topInset
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
MultiIconLabel {
|
||||
icon0: StudioTheme.Constants.paddingFrame
|
||||
icon1: StudioTheme.Constants.paddingEdge
|
||||
tooltip: qsTr("Top inset for the background.")
|
||||
//disabledStateSoft: !backendValues.topPadding.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 10000
|
||||
minimumValue: -10000
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
backendValue: backendValues.bottomInset
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
MultiIconLabel {
|
||||
icon0: StudioTheme.Constants.paddingFrame
|
||||
icon1: StudioTheme.Constants.paddingEdge
|
||||
rotation: 180
|
||||
tooltip: qsTr("Bottom inset for the background.")
|
||||
//disabledStateSoft: !backendValues.bottomPadding.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Horizontal") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 10000
|
||||
minimumValue: -10000
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
backendValue: backendValues.leftInset
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
MultiIconLabel {
|
||||
icon0: StudioTheme.Constants.paddingFrame
|
||||
icon1: StudioTheme.Constants.paddingEdge
|
||||
rotation: 270
|
||||
tooltip: qsTr("Left inset for the background.")
|
||||
//disabledStateSoft: !backendValues.leftPadding.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 10000
|
||||
minimumValue: -10000
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
backendValue: backendValues.rightInset
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
MultiIconLabel {
|
||||
icon0: StudioTheme.Constants.paddingFrame
|
||||
icon1: StudioTheme.Constants.paddingEdge
|
||||
rotation: 90
|
||||
tooltip: qsTr("Right inset for the background.")
|
||||
//disabledStateSoft: !backendValues.rightPadding.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: section
|
||||
caption: qsTr("Item delegate")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Highlighted")
|
||||
tooltip: qsTr("Whether the delegate is highlighted.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.highlighted.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlighted
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ItemDelegateSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,60 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
CharacterSection {
|
||||
showVerticalAlignment: true
|
||||
}
|
||||
|
||||
TextExtrasSection {
|
||||
width: parent.width
|
||||
showWrapMode: true
|
||||
showFormatProperty: true
|
||||
}
|
||||
|
||||
FontExtrasSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
InsetSection {}
|
||||
}
|
@@ -0,0 +1,119 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Page")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Title")
|
||||
tooltip: qsTr("Title of the page.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.title
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Content size")
|
||||
tooltip: qsTr("Content width and height used for calculating the total implicit size.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("W")
|
||||
tooltip: qsTr("Content width used for calculating the total implicit width.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentHeight
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("H")
|
||||
tooltip: qsTr("Content height used for calculating the total implicit height.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,93 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Pane")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Content size")
|
||||
tooltip: qsTr("Content width and height used for calculating the total implicit size.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("W")
|
||||
tooltip: qsTr("Content width used for calculating the total implicit width.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentHeight
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("H")
|
||||
tooltip: qsTr("Content height used for calculating the total implicit height.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
PaneSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,132 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Progress bar")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value")
|
||||
tooltip: qsTr("The current value of the progress.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.value
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("The starting value for the progress.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.from
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("The ending value for the progress.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.to
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Indeterminate")
|
||||
tooltip: qsTr("Whether the progress is indeterminate.")
|
||||
disabledState: !backendValues.indeterminate.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.indeterminate.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidt
|
||||
backendValue: backendValues.indeterminate
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ItemDelegateSection {
|
||||
caption: qsTr("Radio delegate")
|
||||
}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,216 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
caption: qsTr("Range slider")
|
||||
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value 1")
|
||||
tooltip: qsTr("The value of the first range slider handle.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.first_value
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("live")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.live
|
||||
tooltip: qsTr("Whether the range slider provides live value updates.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Value 2")
|
||||
tooltip: qsTr("The value of the second range slider handle.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.second_value
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("The starting value of the range slider range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.from
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("The ending value of the range slider range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.to
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Step size")
|
||||
tooltip: qsTr("The step size of the range slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.stepSize
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Drag threshold")
|
||||
tooltip: qsTr("The threshold (in logical pixels) at which a Drag event will be initiated.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
decimals: 0
|
||||
backendValue: backendValues.touchDragThreshold
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Snap mode")
|
||||
tooltip: qsTr("The snap mode of the range slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.snapMode
|
||||
model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
|
||||
scope: "RangeSlider"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("The orientation of the range slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.orientation
|
||||
model: [ "Horizontal", "Vertical" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,105 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Round button")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Appearance")
|
||||
tooltip: qsTr("Whether the button is flat and/or highlighted.")
|
||||
disabledState: !backendValues.flat.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: qsTr("Flat")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.flat
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Highlight")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlighted
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Radius")
|
||||
tooltip: qsTr("Radius of the button.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
decimals: 0
|
||||
backendValue: backendValues.radius
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,102 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Scroll view")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("Content size") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.contentWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("W")
|
||||
tooltip: qsTr("Content width used for calculating the total implicit width.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.contentHeight
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("H")
|
||||
tooltip: qsTr("Content height used for calculating the total implicit height.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
LinkIndicator2D {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,195 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Slider")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value")
|
||||
tooltip: qsTr("The current value of the slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.value
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("live")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.live
|
||||
tooltip: qsTr("Whether the slider provides live value updates.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("The starting value of the slider range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.from
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("The ending value of the slider range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.to
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Step size")
|
||||
tooltip: qsTr("The step size of the slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.stepSize
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Drag threshold")
|
||||
tooltip: qsTr("The threshold (in logical pixels) at which a Drag event will be initiated.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
decimals: 0
|
||||
backendValue: backendValues.touchDragThreshold
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Snap mode")
|
||||
tooltip: qsTr("The snap mode of the slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.snapMode
|
||||
model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
|
||||
scope: "RangeSlider"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("The orientation of the slider.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.orientation
|
||||
model: [ "Horizontal", "Vertical" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,161 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Spin box")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value")
|
||||
tooltip: qsTr("The current value of the spinbox.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
|
||||
maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
|
||||
decimals: 2
|
||||
backendValue: backendValues.value
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("The starting value of the spinbox range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.from
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("The ending value of the spinbox range.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.to
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Step size")
|
||||
tooltip: qsTr("The step size of the spinbox.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.stepSize
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Editable")
|
||||
tooltip: qsTr("Whether the spinbox is editable.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.editable.valueToString
|
||||
backendValue: backendValues.editable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Wrap")
|
||||
tooltip: qsTr("Whether the spinbox wraps.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.wrap.valueToString
|
||||
backendValue: backendValues.wrap
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,53 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ItemDelegateSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,96 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Swipe view")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Interactive")
|
||||
tooltip: qsTr("Whether the view is interactive.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.interactive.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.interactive
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("Orientation of the view.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.orientation
|
||||
model: [ "Horizontal", "Vertical" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ContainerSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ItemDelegateSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,123 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Tab bar")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Position")
|
||||
tooltip: qsTr("Position of the tabbar.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.position
|
||||
model: [ "Header", "Footer" ]
|
||||
scope: "TabBar"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Content size")
|
||||
tooltip: qsTr("Content width and height used for calculating the total implicit size.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("W")
|
||||
tooltip: qsTr("Content width used for calculating the total implicit width.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.contentHeight
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: qsTr("H")
|
||||
tooltip: qsTr("Content height used for calculating the total implicit height.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ContainerSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,62 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
TextSection {}
|
||||
|
||||
CharacterSection {
|
||||
showVerticalAlignment: true
|
||||
}
|
||||
|
||||
TextExtrasSection {
|
||||
showWrapMode: true
|
||||
showFormatProperty: true
|
||||
}
|
||||
|
||||
FontExtrasSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
InsetSection {}
|
||||
}
|
@@ -0,0 +1,59 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
TextSection {
|
||||
caption: qsTr("Text field")
|
||||
}
|
||||
|
||||
CharacterSection {}
|
||||
|
||||
TextExtrasSection {}
|
||||
|
||||
FontExtrasSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
InsetSection {}
|
||||
}
|
@@ -0,0 +1,89 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Text area")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Placeholder text")
|
||||
tooltip: qsTr("Placeholder text displayed when the editor is empty.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.placeholderText
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Placeholder color")
|
||||
tooltip: qsTr("Placeholder text color")
|
||||
}
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.placeholderTextColor
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Hover")
|
||||
tooltip: qsTr("Whether text area accepts hover events.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.hoverEnabled.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.hoverEnabled
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,80 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Tool bar")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Position")
|
||||
tooltip: qsTr("Position of the toolbar.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.position
|
||||
model: [ "Header", "Footer" ]
|
||||
scope: "ToolBar"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaneSection {}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
|
||||
FontSection {
|
||||
caption: qsTr("Font inheritance")
|
||||
expanded: false
|
||||
}
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
ButtonSection {}
|
||||
|
||||
AbstractButtonSection {}
|
||||
|
||||
ControlSection { }
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Tool separator")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("The orientation of the separator.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.orientation
|
||||
model: [ "Horizontal", "Vertical" ]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL3$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 3 requirements
|
||||
** will be met: https://www.gnu.org/licenses/lgpl.html.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 2.0 or later as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.GPL included in
|
||||
** the packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 2.0 requirements will be
|
||||
** met: http://www.gnu.org/licenses/gpl-2.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Tumbler")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Visible count")
|
||||
tooltip: qsTr("The count of visible items.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.visibleItemCount
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Current index")
|
||||
tooltip: qsTr("The index of the current item.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -9999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.currentIndex
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Wrap")
|
||||
tooltip: qsTr("Whether the tumbler wrap.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.wrap.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.wrap
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ControlSection {}
|
||||
|
||||
FontSection {}
|
||||
|
||||
PaddingSection {}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,16 +23,15 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
FlickableSection {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
}
|
||||
FlickableSection {}
|
||||
|
||||
FlickableGeometrySection {}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,67 +23,69 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Flow")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Flow")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Flow"
|
||||
model: ["LeftToRight", "TopToBottom"]
|
||||
backendValue: backendValues.flow
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Layout direction")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Qt"
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
backendValue: backendValues.layoutDirection
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Spacing")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Spacing") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Flow") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.flow
|
||||
model: ["LeftToRight", "TopToBottom"]
|
||||
scope: "Flow"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Layout direction") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layoutDirection
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
}
|
||||
PaddingSection {}
|
||||
}
|
||||
|
@@ -23,100 +23,186 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
caption: qsTr("Geometry")
|
||||
caption: qsTr("Geometry - 2d")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
rowSpacing: 4
|
||||
rows: 2
|
||||
|
||||
Label {
|
||||
text: qsTr("Position")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Position") }
|
||||
|
||||
SecondColumnLayout {
|
||||
|
||||
Label {
|
||||
text: "X"
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.x
|
||||
maximumValue: 0xffff
|
||||
minimumValue: -0xffff
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
Label {
|
||||
text: "Y"
|
||||
width: 12
|
||||
}
|
||||
ControlLabel { text: "X" }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.y
|
||||
maximumValue: 0xffff
|
||||
minimumValue: -0xffff
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Size")
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "Y" }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
LinkIndicator2D {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Size") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.width
|
||||
maximumValue: 0xffff
|
||||
minimumValue: 0
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.height
|
||||
maximumValue: 0xffff
|
||||
minimumValue: 0
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
LinkIndicator2D {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Rotation") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.rotation
|
||||
decimals: 2
|
||||
minimumValue: -360
|
||||
maximumValue: 360
|
||||
enabled: backendValues.rotation.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "°" }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
StudioControls.ButtonRow {
|
||||
actionIndicatorVisible: true
|
||||
|
||||
StudioControls.ButtonGroup { id: mirrorGroup }
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: mirrorVertical
|
||||
buttonIcon: StudioTheme.Constants.mirror
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: mirrorGroup
|
||||
checked: true
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: mirrorHorizontal
|
||||
buttonIcon: StudioTheme.Constants.mirror
|
||||
checkable: true
|
||||
autoExclusive: true
|
||||
StudioControls.ButtonGroup.group: mirrorGroup
|
||||
iconRotation: 90
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Scale") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.scale
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
minimumValue: -10
|
||||
maximumValue: 10
|
||||
enabled: backendValues.scale.isAvailable
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "%" }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Z Stack") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.z
|
||||
minimumValue: -100
|
||||
maximumValue: 100
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Origin") }
|
||||
|
||||
SecondColumnLayout {
|
||||
OriginControl {
|
||||
backendValue: backendValues.transformOrigin
|
||||
enabled: backendValues.transformOrigin.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,120 +23,126 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Grid")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Columns")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Columns") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.columns
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Rows")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Rows") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.rows
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Flow")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["LeftToRight", "TopToBottom"]
|
||||
backendValue: backendValues.flow
|
||||
Layout.fillWidth: true
|
||||
scope: "Grid"
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Layout direction")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
backendValue: backendValues.layoutDirection
|
||||
Layout.fillWidth: true
|
||||
scope: "Qt"
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Horizontal component alignment")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["AlignLeft", "AlignRight" ,"AlignHCenter"]
|
||||
backendValue: backendValues.horizontalItemAlignment
|
||||
Layout.fillWidth: true
|
||||
scope: "Grid"
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Vertical component alignment")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["AlignTop", "AlignBottom" ,"AlignVCenter"]
|
||||
backendValue: backendValues.verticalItemAlignment
|
||||
Layout.fillWidth: true
|
||||
scope: "Grid"
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Spacing")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Spacing") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Flow") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.flow
|
||||
model: ["LeftToRight", "TopToBottom"]
|
||||
scope: "Grid"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Layout direction") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layoutDirection
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Alignment H") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.horizontalItemAlignment
|
||||
model: ["AlignLeft", "AlignRight" ,"AlignHCenter"]
|
||||
scope: "Grid"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Alignment V") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.verticalItemAlignment
|
||||
model: ["AlignTop", "AlignBottom" ,"AlignVCenter"]
|
||||
scope: "Grid"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,9 +23,11 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
@@ -37,213 +39,230 @@ Column {
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Grid View")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Cache buffer")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.cacheBuffer
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Cell size")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Cell size") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
backendValue: backendValues.cellWidth
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.contentWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
maximumValue: 10000
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.contentHeight
|
||||
minimumValue: 0
|
||||
maximumValue: 10000
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
backendValue: backendValues.cellHeight
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
LinkIndicator2D {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Flow")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Flow") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "GridView"
|
||||
model: ["FlowLeftToRight", "FlowTopToBottom"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.flow
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["FlowLeftToRight", "FlowTopToBottom"]
|
||||
scope: "GridView"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Navigation wraps")
|
||||
tooltip: qsTr("Whether the grid wraps key navigation.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.keyNavigationWraps
|
||||
text: backendValues.keyNavigationWraps.valueToString
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Layout direction")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Layout direction") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Qt"
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layoutDirection
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
scope: "Qt"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Snap mode")
|
||||
tooltip: qsTr("Determines how the view scrolling will settle following a drag or flick.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "GridView"
|
||||
model: ["NoSnap", "SnapToRow", "SnapOneRow"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.snapMode
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["NoSnap", "SnapToRow", "SnapOneRow"]
|
||||
scope: "GridView"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Cache buffer")
|
||||
disabledState: !backendValues.cacheBuffer.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.cacheBuffer
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Navigation wraps")
|
||||
tooltip: qsTr("Whether the grid wraps key navigation.")
|
||||
disabledState: !backendValues.keyNavigationWraps.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.keyNavigationWraps.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.keyNavigationWraps
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Grid View Highlight")
|
||||
|
||||
SectionLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Label {
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Range")
|
||||
tooltip: qsTr("Highlight range")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "GridView"
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.highlightRangeMode
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
scope: "GridView"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Move duration")
|
||||
tooltip: qsTr("Move animation duration of the highlight delegate.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightMoveDuration
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred begin")
|
||||
tooltip: qsTr("Preferred highlight begin - must be smaller than Preferred end.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightBegin
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred end")
|
||||
tooltip: qsTr("Preferred highlight end - must be larger than Preferred begin.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightEnd
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Follows current")
|
||||
tooltip: qsTr("Whether the highlight is managed by the view.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.highlightFollowsCurrentItem
|
||||
text: backendValues.highlightFollowsCurrentItem.valueToString
|
||||
backendValue: backendValues.highlightFollowsCurrentItem
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,223 +23,15 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Image")
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Source")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
UrlChooser {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.source
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Fill mode")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Image"
|
||||
model: ["Stretch", "PreserveAspectFit", "PreserveAspectCrop", "Tile", "TileVertically", "TileHorizontally", "Pad"]
|
||||
backendValue: backendValues.fillMode
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Source size")
|
||||
disabledState: !backendValues.sourceSize.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.sourceSize_width.isAvailable
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.sourceSize_width
|
||||
minimumValue: 0
|
||||
maximumValue: 8192
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
disabledStateSoft: !backendValues.sourceSize_height.isAvailable
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.sourceSize_height
|
||||
minimumValue: 0
|
||||
maximumValue: 8192
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Horizontal alignment")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Image"
|
||||
model: ["AlignLeft", "AlignRight", "AlignHCenter"]
|
||||
backendValue: backendValues.horizontalAlignment
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Vertical alignment")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Image"
|
||||
model: ["AlignTop", "AlignBottom", "AlignVCenter"]
|
||||
backendValue: backendValues.verticalAlignment
|
||||
implicitWidth: 180
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Asynchronous")
|
||||
tooltip: qsTr("Loads images on the local filesystem asynchronously in a separate thread.")
|
||||
disabledState: !backendValues.asynchronous.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.asynchronous.isAvailable
|
||||
text: backendValues.asynchronous.valueToString
|
||||
backendValue: backendValues.asynchronous
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Auto transform")
|
||||
tooltip: qsTr("Automatically applies image transformation metadata such as EXIF orientation.")
|
||||
disabledState: !backendValues.autoTransform.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.autoTransform.isAvailable
|
||||
text: backendValues.autoTransform.valueToString
|
||||
backendValue: backendValues.autoTransform
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Caches the image.")
|
||||
disabledState: !backendValues.cache.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.cache.isAvailable
|
||||
text: backendValues.cache.valueToString
|
||||
backendValue: backendValues.cache
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Mipmap")
|
||||
tooltip: qsTr("Uses mipmap filtering when the image is scaled or transformed.")
|
||||
disabledState: !backendValues.mipmap.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.mipmap.isAvailable
|
||||
text: backendValues.mipmap.valueToString
|
||||
backendValue: backendValues.mipmap
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Mirror")
|
||||
tooltip: qsTr("Inverts the image horizontally.")
|
||||
disabledState: !backendValues.mirror.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.mirror.isAvailable
|
||||
text: backendValues.mirror.valueToString
|
||||
backendValue: backendValues.mirror
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Smooth")
|
||||
tooltip: qsTr("Smoothly filters the image when it is scaled or transformed.")
|
||||
disabledState: !backendValues.smooth.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
enabled: backendValues.smooth.isAvailable
|
||||
text: backendValues.smooth.valueToString
|
||||
backendValue: backendValues.smooth
|
||||
implicitWidth: 180
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
ImageSection {}
|
||||
}
|
||||
|
@@ -27,6 +27,7 @@ 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 StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
@@ -37,321 +38,90 @@ Rectangle {
|
||||
height: 400
|
||||
color: Theme.qmlDesignerBackgroundColorDarkAlternate()
|
||||
|
||||
Component.onCompleted: Controller.mainScrollView = mainScrollView
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: forceActiveFocus()
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
id: mainScrollView
|
||||
clip: true
|
||||
anchors.fill: parent
|
||||
|
||||
Column {
|
||||
id: mainColumn
|
||||
y: -1
|
||||
width: itemPane.width
|
||||
Section {
|
||||
z: 2
|
||||
caption: qsTr("Component")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
onWidthChanged: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||
Component.onCompleted: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Type")
|
||||
}
|
||||
ComponentSection {}
|
||||
|
||||
SecondColumnLayout {
|
||||
z: 2
|
||||
|
||||
RoundedPanel {
|
||||
Layout.fillWidth: true
|
||||
height: StudioTheme.Values.height
|
||||
|
||||
Label {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: StudioTheme.Values.inputHorizontalPadding
|
||||
anchors.topMargin: StudioTheme.Values.typeLabelVerticalShift
|
||||
text: backendValues.className.value
|
||||
}
|
||||
ToolTipArea {
|
||||
anchors.fill: parent
|
||||
onDoubleClicked: {
|
||||
typeLineEdit.text = backendValues.className.value
|
||||
typeLineEdit.visible = ! typeLineEdit.visible
|
||||
typeLineEdit.forceActiveFocus()
|
||||
}
|
||||
tooltip: qsTr("Changes the type of this component.")
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
ExpressionTextField {
|
||||
id: typeLineEdit
|
||||
z: 2
|
||||
completeOnlyTypes: true
|
||||
replaceCurrentTextByCompletion: true
|
||||
anchors.fill: parent
|
||||
|
||||
visible: false
|
||||
|
||||
showButtons: false
|
||||
fixedSize: true
|
||||
|
||||
property bool blockEditingFinished: false
|
||||
|
||||
onEditingFinished: {
|
||||
if (typeLineEdit.blockEditingFinished)
|
||||
return
|
||||
|
||||
typeLineEdit.blockEditingFinished = true
|
||||
|
||||
if (typeLineEdit.visible)
|
||||
changeTypeName(typeLineEdit.text.trim())
|
||||
typeLineEdit.visible = false
|
||||
|
||||
typeLineEdit.blockEditingFinished = false
|
||||
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
|
||||
onRejected: {
|
||||
typeLineEdit.visible = false
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Item {
|
||||
Layout.preferredWidth: 20
|
||||
Layout.preferredHeight: 20
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("ID")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
spacing: 2
|
||||
LineEdit {
|
||||
id: lineEdit
|
||||
|
||||
backendValue: backendValues.id
|
||||
placeholderText: qsTr("ID")
|
||||
text: backendValues.id.value
|
||||
Layout.fillWidth: true
|
||||
width: 240
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: aliasIndicator
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
implicitWidth: StudioTheme.Values.height
|
||||
implicitHeight: StudioTheme.Values.height
|
||||
z: 10
|
||||
|
||||
Label {
|
||||
id: aliasIndicatorIcon
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
text: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Constants.idAliasOff
|
||||
|
||||
return hasAliasExport ? StudioTheme.Constants.idAliasOn : StudioTheme.Constants.idAliasOff
|
||||
}
|
||||
color: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Values.themeTextColorDisabled
|
||||
|
||||
return hasAliasExport ? StudioTheme.Values.themeInteraction : StudioTheme.Values.themeTextColor
|
||||
}
|
||||
font.family: StudioTheme.Constants.iconFont.family
|
||||
font.pixelSize: Math.round(16 * StudioTheme.Values.scaleFactor)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
states: [
|
||||
State {
|
||||
name: "hovered"
|
||||
when: toolTipArea.containsMouse && aliasIndicatorIcon.enabled
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
scale: 1.2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
id: toolTipArea
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
onClicked: toogleExportAlias()
|
||||
tooltip: qsTr("Exports this component as an alias property of the root component.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Custom ID")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
spacing: 2
|
||||
|
||||
LineEdit {
|
||||
id: annotationEdit
|
||||
visible: annotationEditor.hasAuxData
|
||||
|
||||
backendValue: backendValues.customId__AUX
|
||||
placeholderText: qsTr("customId")
|
||||
text: backendValue.value
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: 240
|
||||
width: 240
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: editAnnotationButton
|
||||
visible: annotationEditor.hasAuxData
|
||||
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
width: 22
|
||||
|
||||
buttonIcon: StudioTheme.Constants.edit
|
||||
|
||||
onClicked: annotationEditor.showWidget()
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: removeAnnotationButton
|
||||
visible: annotationEditor.hasAuxData
|
||||
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
width: 22
|
||||
|
||||
buttonIcon: StudioTheme.Constants.closeCross
|
||||
|
||||
onClicked: annotationEditor.removeFullAnnotation()
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: addAnnotationButton
|
||||
visible: !annotationEditor.hasAuxData
|
||||
|
||||
buttonIcon: qsTr("Add Annotation")
|
||||
iconFont: StudioTheme.Constants.font
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: 240
|
||||
width: 240
|
||||
|
||||
onClicked: annotationEditor.showWidget()
|
||||
|
||||
onHoveredChanged: annotationEditor.checkAux()
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
visible: !annotationEditor.hasAuxData
|
||||
}
|
||||
|
||||
AnnotationEditor {
|
||||
id: annotationEditor
|
||||
|
||||
modelNodeBackendProperty: modelNodeBackend
|
||||
|
||||
property bool hasAuxData: (annotationEditor.hasAnnotation || annotationEditor.hasCustomId)
|
||||
|
||||
onModelNodeBackendChanged: checkAux()
|
||||
onCustomIdChanged: checkAux()
|
||||
onAnnotationChanged: checkAux()
|
||||
|
||||
function checkAux() {
|
||||
hasAuxData = (annotationEditor.hasAnnotation || annotationEditor.hasCustomId)
|
||||
annotationEdit.update()
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
hideWidget()
|
||||
}
|
||||
|
||||
onCanceled: {
|
||||
hideWidget()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GeometrySection {
|
||||
}
|
||||
GeometrySection {}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
caption: qsTr("Visibility")
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
rows: 2
|
||||
Label {
|
||||
text: qsTr("Visibility")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Visibility") }
|
||||
|
||||
SecondColumnLayout {
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Is visible")
|
||||
text: qsTr("Visible")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.visible
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 10
|
||||
height: 10
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
CheckBox {
|
||||
text: qsTr("Clip")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.clip
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Opacity")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Opacity") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
width: StudioTheme.Values.squareComponentWidth * 4
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.opacity
|
||||
decimals: 2
|
||||
|
||||
minimumValue: 0
|
||||
maximumValue: 1
|
||||
hasSlider: true
|
||||
stepSize: 0.1
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("State") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
editable: true
|
||||
backendValue: backendValues.state
|
||||
model: allStateNames
|
||||
valueType: ComboBox.String
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -373,35 +143,31 @@ Rectangle {
|
||||
StudioControls.TabButton {
|
||||
text: qsTr("Layout")
|
||||
}
|
||||
StudioControls.TabButton {
|
||||
text: qsTr("Advanced")
|
||||
}
|
||||
}
|
||||
|
||||
StackLayout {
|
||||
id: tabView
|
||||
property int currentHeight: children[tabView.currentIndex].implicitHeight
|
||||
property int extraHeight: 40
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
currentIndex: tabBar.currentIndex
|
||||
|
||||
property int currentHeight: children[currentIndex].implicitHeight
|
||||
property int extraHeight: 40
|
||||
|
||||
height: currentHeight + extraHeight
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
width: parent.width
|
||||
|
||||
Loader {
|
||||
id: specificsTwo
|
||||
|
||||
property string theSource: specificQmlData
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
visible: theSource !== ""
|
||||
|
||||
id: specificsTwo;
|
||||
sourceComponent: specificQmlComponent
|
||||
|
||||
property string theSource: specificQmlData
|
||||
|
||||
onTheSourceChanged: {
|
||||
active = false
|
||||
active = true
|
||||
@@ -409,22 +175,22 @@ Rectangle {
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: specificsOne
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
id: specificsOne;
|
||||
source: specificsUrl;
|
||||
|
||||
property int loaderHeight: specificsOne.item.height + tabView.extraHeight
|
||||
source: specificsUrl
|
||||
visible: specificsOne.source.toString() !== ""
|
||||
}
|
||||
|
||||
AdvancedSection {}
|
||||
|
||||
LayerSection {}
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
width: parent.width
|
||||
|
||||
LayoutSection {
|
||||
}
|
||||
LayoutSection {}
|
||||
|
||||
MarginSection {
|
||||
visible: anchorBackend.isInLayout
|
||||
@@ -439,16 +205,6 @@ Rectangle {
|
||||
visible: !anchorBackend.isInLayout
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
AdvancedSection {
|
||||
}
|
||||
LayerSection {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,9 +23,10 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
@@ -34,97 +35,54 @@ Section {
|
||||
visible: backendValues.layer_effect.isAvailable
|
||||
|
||||
SectionLayout {
|
||||
columns: 2
|
||||
|
||||
Label {
|
||||
text: qsTr("Effect")
|
||||
tooltip: qsTr("Applies the effect to this layer.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick.Item"
|
||||
validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ }
|
||||
backendValue: backendValues.layer_effect
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Enabled")
|
||||
tooltip: qsTr("Whether the component is layered or not.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.layer_enabled.valueToString
|
||||
backendValue: backendValues.layer_enabled
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Format")
|
||||
tooltip: qsTr("Internal OpenGL format of the texture.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["Alpha", "RGB", "RGBA"]
|
||||
backendValue: backendValues.layer_format
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Mipmap")
|
||||
tooltip: qsTr("Generates mipmaps for the texture.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.layer_mipmap.valueToString
|
||||
backendValue: backendValues.layer_mipmap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Sampler name")
|
||||
PropertyLabel {
|
||||
text: qsTr("Sampler Name")
|
||||
tooltip: qsTr("Name of the effect's source texture property.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layer_samplerName
|
||||
text: backendValues.layer_samplerName.valueToString
|
||||
Layout.fillWidth: true
|
||||
showTranslateCheckBox: false
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Samples")
|
||||
tooltip: qsTr("Allows requesting multisampled rendering in the layer.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: samplesComboBox
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
model: [2, 4, 8, 16]
|
||||
backendValue: backendValues.layer_samples
|
||||
manualMapping: true
|
||||
Layout.fillWidth: true
|
||||
|
||||
onValueFromBackendChanged: {
|
||||
if (!samplesComboBox.__isCompleted)
|
||||
@@ -150,93 +108,208 @@ Section {
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Effect")
|
||||
tooltip: qsTr("Applies the effect to this layer.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
typeFilter: "QtQuick.Item"
|
||||
validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ }
|
||||
backendValue: backendValues.layer_effect
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Format")
|
||||
tooltip: qsTr("Internal OpenGL format of the texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["Alpha", "RGB", "RGBA"]
|
||||
backendValue: backendValues.layer_format
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Texture size")
|
||||
tooltip: qsTr("Requested pixel size of the layer's texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_textureSize_width
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_textureSize_height
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Texture Mirroring")
|
||||
tooltip: qsTr("Sets how the generated OpenGL texture should be mirrored.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["NoMirroring", "MirrorHorizontally", "MirrorVertically"]
|
||||
backendValue: backendValues.layer_textureMirroring
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Wrap mode")
|
||||
tooltip: qsTr("OpenGL wrap modes associated with the texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["ClampToEdge", "RepeatHorizontally", "RepeatVertically", "Repeat"]
|
||||
backendValue: backendValues.layer_wrapMode
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Mipmap")
|
||||
tooltip: qsTr("Generates mipmaps for the texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.layer_mipmap.valueToString
|
||||
backendValue: backendValues.layer_mipmap
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Smooth")
|
||||
tooltip: qsTr("Transforms the layer smoothly.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValues.layer_smooth.valueToString
|
||||
backendValue: backendValues.layer_smooth
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
/*
|
||||
Label {
|
||||
text: qsTr("Source rectangle")
|
||||
PropertyLabel {
|
||||
text: qsTr("Source Rectangle")
|
||||
tooltip: qsTr("TODO.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "X"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_sourceRect_x
|
||||
maximumValue: 0xffff
|
||||
minimumValue: -0xffff
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "X" }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
Label {
|
||||
text: "Y"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_sourceRect_y
|
||||
maximumValue: 0xffff
|
||||
minimumValue: -0xffff
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "Y" }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
PropertyLabel {}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_sourceRect_width
|
||||
maximumValue: 0xffff
|
||||
minimumValue: 0
|
||||
decimals: 0
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.layer_sourceRect_height
|
||||
maximumValue: 0xffff
|
||||
minimumValue: 0
|
||||
@@ -244,77 +317,12 @@ Section {
|
||||
realDragRange: 5000
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
*/
|
||||
|
||||
Label {
|
||||
text: qsTr("Texture mirroring")
|
||||
tooltip: qsTr("Sets how the generated OpenGL texture should be mirrored.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["NoMirroring", "MirrorHorizontally", "MirrorVertically"]
|
||||
backendValue: backendValues.layer_textureMirroring
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Texture size")
|
||||
tooltip: qsTr("Requested pixel size of the layer's texture.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
backendValue: backendValues.layer_textureSize_width
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
SpinBox {
|
||||
backendValue: backendValues.layer_textureSize_height
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Wrap mode")
|
||||
tooltip: qsTr("OpenGL wrap modes associated with the texture.")
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ShaderEffectSource"
|
||||
model: ["ClampToEdge", "RepeatHorizontally", "RepeatVertically", "Repeat"]
|
||||
backendValue: backendValues.layer_wrapMode
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,16 +23,19 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
SectionLayout {
|
||||
property bool isInModel: backendValue.isInModel;
|
||||
property bool isInSubState: backendValue.isInSubState;
|
||||
property variant valueFromBackend: backendValue.value
|
||||
id: root
|
||||
|
||||
property variant backendValue: backendValues.Layout_alignment
|
||||
property variant valueFromBackend: backendValue === undefined ? 0 : backendValue.value
|
||||
property bool isInModel: backendValue === undefined ? false : backendValue.isInModel
|
||||
property bool isInSubState: backendValue === undefined ? false : backendValue.isInSubState
|
||||
property bool blockAlignment: false
|
||||
|
||||
onIsInModelChanged: evaluateAlignment()
|
||||
@@ -40,66 +43,68 @@ SectionLayout {
|
||||
onBackendValueChanged: evaluateAlignment()
|
||||
onValueFromBackendChanged: evaluateAlignment()
|
||||
|
||||
property int spinBoxWidth: 82
|
||||
|
||||
Connections {
|
||||
target: modelNodeBackend
|
||||
onSelectionChanged: {
|
||||
function onSelectionChanged() {
|
||||
evaluateAlignment()
|
||||
}
|
||||
}
|
||||
|
||||
id: root
|
||||
|
||||
Component.onCompleted: evaluateAlignment()
|
||||
|
||||
function indexOfVerticalAlignment() {
|
||||
if (backendValue === undefined)
|
||||
return 0
|
||||
|
||||
if (backendValue.expression === undefined)
|
||||
return 0;
|
||||
return 0
|
||||
|
||||
if (backendValue.expression.indexOf("AlignVCenter") !== -1)
|
||||
return 0;
|
||||
return 0
|
||||
|
||||
if (backendValue.expression.indexOf("AlignTop") !== -1)
|
||||
return 1;
|
||||
return 1
|
||||
|
||||
if (backendValue.expression.indexOf("AlignBottom") !== -1)
|
||||
return 2;
|
||||
return 2
|
||||
|
||||
if (backendValue.expression.indexOf("AlignBaseline") !== -1)
|
||||
return 3;
|
||||
return 3
|
||||
|
||||
return 0;
|
||||
return 0
|
||||
}
|
||||
|
||||
function indexOfHorizontalAlignment() {
|
||||
if (backendValue === undefined)
|
||||
return 0
|
||||
|
||||
if (backendValue.expression === undefined)
|
||||
return 0;
|
||||
return 0
|
||||
|
||||
if (backendValue.expression.indexOf("AlignLeft") !== -1)
|
||||
return 0;
|
||||
return 0
|
||||
|
||||
if (backendValue.expression.indexOf("AlignHCenter") !== -1)
|
||||
return 1;
|
||||
return 1
|
||||
|
||||
if (backendValue.expression.indexOf("AlignRight") !== -1)
|
||||
return 2;
|
||||
return 2
|
||||
|
||||
return 0;
|
||||
return 0
|
||||
}
|
||||
|
||||
function evaluateAlignment() {
|
||||
blockAlignment = true
|
||||
|
||||
verticalAlignmentComboBox.currentIndex = indexOfVerticalAlignment();
|
||||
horizontalAlignmentComboBox.currentIndex = indexOfHorizontalAlignment();
|
||||
verticalAlignmentComboBox.currentIndex = indexOfVerticalAlignment()
|
||||
horizontalAlignmentComboBox.currentIndex = indexOfHorizontalAlignment()
|
||||
|
||||
blockAlignment = false
|
||||
}
|
||||
|
||||
function composeExpressionString() {
|
||||
if (blockAlignment)
|
||||
return;
|
||||
return
|
||||
|
||||
var expressionStr = "";
|
||||
if (horizontalAlignmentComboBox.currentIndex !== 0
|
||||
@@ -112,21 +117,44 @@ SectionLayout {
|
||||
} else {
|
||||
expressionStr = "Qt.AlignLeft | Qt.AlignVCenter";
|
||||
backendValue.expression = expressionStr
|
||||
backendValue.resetValue();
|
||||
backendValue.resetValue()
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Alignment")
|
||||
tooltip: qsTr("Alignment of a component within the cells it occupies.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
StudioControls.ComboBox {
|
||||
ColorLogic {
|
||||
id: colorLogic
|
||||
id: horizontalAlignmentComboBox
|
||||
|
||||
property bool __isCompleted: false
|
||||
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
labelColor: horizontalAlignmentComboBox.currentIndex === 0 ? colorLogic.__defaultTextColor
|
||||
: colorLogic.__changedTextColor
|
||||
model: ["AlignLeft", "AlignHCenter", "AlignRight"]
|
||||
|
||||
actionIndicator.icon.color: extFuncLogic.color
|
||||
actionIndicator.icon.text: extFuncLogic.glyph
|
||||
actionIndicator.onClicked: extFuncLogic.show()
|
||||
actionIndicator.forceVisible: extFuncLogic.menuVisible
|
||||
actionIndicator.visible: true
|
||||
|
||||
onActivated: {
|
||||
if (!horizontalAlignmentComboBox.__isCompleted)
|
||||
return
|
||||
|
||||
horizontalAlignmentComboBox.currentIndex = index
|
||||
composeExpressionString()
|
||||
}
|
||||
Layout.fillWidth: true
|
||||
|
||||
Component.onCompleted: horizontalAlignmentComboBox.__isCompleted = true
|
||||
|
||||
ColorLogic { id: colorLogic }
|
||||
|
||||
ExtendedFunctionLogic {
|
||||
id: extFuncLogic
|
||||
@@ -136,42 +164,22 @@ SectionLayout {
|
||||
verticalAlignmentComboBox.currentIndex = 0
|
||||
}
|
||||
}
|
||||
|
||||
actionIndicator.icon.color: extFuncLogic.color
|
||||
actionIndicator.icon.text: extFuncLogic.glyph
|
||||
actionIndicator.onClicked: extFuncLogic.show()
|
||||
actionIndicator.forceVisible: extFuncLogic.menuVisible
|
||||
actionIndicator.visible: true
|
||||
|
||||
labelColor: horizontalAlignmentComboBox.currentIndex === 0 ? colorLogic.__defaultTextColor : colorLogic.__changedTextColor
|
||||
|
||||
id: horizontalAlignmentComboBox
|
||||
|
||||
property bool __isCompleted: false
|
||||
|
||||
model: ["AlignLeft", "AlignHCenter", "AlignRight"]
|
||||
|
||||
onActivated: {
|
||||
if (!horizontalAlignmentComboBox.__isCompleted)
|
||||
return;
|
||||
|
||||
horizontalAlignmentComboBox.currentIndex = index
|
||||
composeExpressionString();
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
horizontalAlignmentComboBox.__isCompleted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
}
|
||||
PropertyLabel { text: "" }
|
||||
|
||||
SecondColumnLayout {
|
||||
StudioControls.ComboBox {
|
||||
id: verticalAlignmentComboBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
property bool __isCompleted: false
|
||||
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
labelColor: verticalAlignmentComboBox.currentIndex === 0 ? colorLogic.__defaultTextColor
|
||||
: colorLogic.__changedTextColor
|
||||
model: ["AlignVCenter", "AlignTop", "AlignBottom", "AlignBaseline"]
|
||||
|
||||
actionIndicator.icon.color: extFuncLogic.color
|
||||
actionIndicator.icon.text: extFuncLogic.glyph
|
||||
@@ -179,206 +187,187 @@ SectionLayout {
|
||||
actionIndicator.forceVisible: extFuncLogic.menuVisible
|
||||
actionIndicator.visible: true
|
||||
|
||||
labelColor: verticalAlignmentComboBox.currentIndex === 0 ? colorLogic.__defaultTextColor : colorLogic.__changedTextColor
|
||||
|
||||
property bool __isCompleted: false
|
||||
|
||||
model: ["AlignVCenter", "AlignTop", "AlignBottom", "AlignBaseline"]
|
||||
|
||||
onActivated: {
|
||||
if (!verticalAlignmentComboBox.__isCompleted)
|
||||
return;
|
||||
return
|
||||
|
||||
verticalAlignmentComboBox.currentIndex = index
|
||||
composeExpressionString();
|
||||
composeExpressionString()
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
verticalAlignmentComboBox.__isCompleted = true;
|
||||
}
|
||||
Component.onCompleted: verticalAlignmentComboBox.__isCompleted = true
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Fill layout")
|
||||
tooltip: qsTr("Expands the component as much as possible within the given constraints.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_fillWidth
|
||||
text: qsTr("Fill width")
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Width")
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnGap
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_fillHeight
|
||||
text: qsTr("Fill height")
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Height")
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred size")
|
||||
tooltip: qsTr("Preferred size of a component in a layout. If the preferred height or width is -1, it is ignored.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_preferredWidth
|
||||
minimumValue: -1
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_preferredHeight
|
||||
minimumValue: -1
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Minimum size")
|
||||
tooltip: qsTr("Minimum size of a component in a layout.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_minimumWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_minimumHeight
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Maximum size")
|
||||
tooltip: qsTr("Maximum size of a component in a layout.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Label {
|
||||
text: "W"
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_maximumWidth
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 4
|
||||
height: 4
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
Label {
|
||||
text: "H"
|
||||
width: 12
|
||||
}
|
||||
ControlLabel { text: qsTr("W") }
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_maximumHeight
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: qsTr("H") }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Row span")
|
||||
tooltip: qsTr("Row span of a component in a Grid Layout.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Item {
|
||||
height: 4
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_rowSpan
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Column span")
|
||||
tooltip: qsTr("Column span of a component in a Grid Layout.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
Item {
|
||||
height: 4
|
||||
width: 12
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.Layout_columnSpan
|
||||
minimumValue: 0
|
||||
maximumValue: 0xffff
|
||||
realDragRange: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,9 +23,9 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
@@ -33,140 +33,144 @@ Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Layout")
|
||||
spacing: StudioTheme.Values.sectionRowSpacing + 6
|
||||
|
||||
LayoutPoperties {
|
||||
LayoutProperties {
|
||||
id: layoutPoperties
|
||||
visible: anchorBackend.isInLayout
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
SectionLayout {
|
||||
visible: !anchorBackend.isInLayout
|
||||
width: parent.width
|
||||
Label {
|
||||
text: qsTr("Anchors")
|
||||
|
||||
PropertyLabel { text: qsTr("Anchors") }
|
||||
|
||||
SecondColumnLayout {
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
AnchorButtons {}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
||||
AnchorButtons {
|
||||
AnchorRow {
|
||||
visible: anchorBackend.topAnchored
|
||||
iconSource: StudioTheme.Constants.anchorTop
|
||||
anchorMargin: backendValues.anchors_topMargin
|
||||
targetName: anchorBackend.topTarget
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetTop
|
||||
verticalAnchor: true
|
||||
|
||||
onTargetChanged: {
|
||||
anchorBackend.topTarget = currentText
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
visible: anchorBackend.topAnchored
|
||||
iconSource: StudioTheme.Constants.anchorTop
|
||||
anchorMargin: backendValues.anchors_topMargin
|
||||
targetName: anchorBackend.topTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.topTarget = currentText
|
||||
}
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetTop
|
||||
verticalAnchor: true
|
||||
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.Center
|
||||
}
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
visible: anchorBackend.bottomAnchored
|
||||
iconSource: StudioTheme.Constants.anchorBottom
|
||||
anchorMargin: backendValues.anchors_bottomMargin
|
||||
targetName: anchorBackend.bottomTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.bottomTarget = currentText
|
||||
}
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetBottom
|
||||
verticalAnchor: true
|
||||
invertRelativeTargets: true
|
||||
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.Center
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
visible: anchorBackend.leftAnchored
|
||||
iconSource: StudioTheme.Constants.anchorLeft
|
||||
anchorMargin: backendValues.anchors_leftMargin
|
||||
targetName: anchorBackend.leftTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.leftTarget = currentText
|
||||
}
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetLeft
|
||||
verticalAnchor: false
|
||||
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.Center
|
||||
}
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetTop = AnchorBindingProxy.Center
|
||||
}
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
visible: anchorBackend.rightAnchored
|
||||
iconSource: StudioTheme.Constants.anchorRight
|
||||
anchorMargin: backendValues.anchors_rightMargin
|
||||
targetName: anchorBackend.rightTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.rightTarget = currentText
|
||||
}
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetRight
|
||||
verticalAnchor: false
|
||||
invertRelativeTargets: true
|
||||
AnchorRow {
|
||||
visible: anchorBackend.bottomAnchored
|
||||
iconSource: StudioTheme.Constants.anchorBottom
|
||||
anchorMargin: backendValues.anchors_bottomMargin
|
||||
targetName: anchorBackend.bottomTarget
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetBottom
|
||||
verticalAnchor: true
|
||||
invertRelativeTargets: true
|
||||
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.Center
|
||||
}
|
||||
onTargetChanged: {
|
||||
anchorBackend.bottomTarget = currentText
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
showAlternativeTargets: false
|
||||
visible: anchorBackend.horizontalCentered
|
||||
iconSource: StudioTheme.Constants.centerHorizontal
|
||||
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
||||
targetName: anchorBackend.horizontalTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.horizontalTarget = currentText
|
||||
}
|
||||
verticalAnchor: false
|
||||
buttonRow.visible: false
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetBottom = AnchorBindingProxy.Center
|
||||
}
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
showAlternativeTargets: false
|
||||
visible: anchorBackend.verticalCentered
|
||||
iconSource: StudioTheme.Constants.centerVertical
|
||||
anchorMargin: backendValues.anchors_verticalCenterOffset
|
||||
targetName: anchorBackend.verticalTarget
|
||||
onTargetChanged: {
|
||||
anchorBackend.verticalTarget = currentText
|
||||
}
|
||||
verticalAnchor: true
|
||||
buttonRow.visible: false
|
||||
AnchorRow {
|
||||
visible: anchorBackend.leftAnchored
|
||||
iconSource: StudioTheme.Constants.anchorLeft
|
||||
anchorMargin: backendValues.anchors_leftMargin
|
||||
targetName: anchorBackend.leftTarget
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetLeft
|
||||
verticalAnchor: false
|
||||
|
||||
onTargetChanged: {
|
||||
anchorBackend.leftTarget = currentText
|
||||
}
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetLeft = AnchorBindingProxy.Center
|
||||
}
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
visible: anchorBackend.rightAnchored
|
||||
iconSource: StudioTheme.Constants.anchorRight
|
||||
anchorMargin: backendValues.anchors_rightMargin
|
||||
targetName: anchorBackend.rightTarget
|
||||
relativeTarget: anchorBackend.relativeAnchorTargetRight
|
||||
verticalAnchor: false
|
||||
invertRelativeTargets: true
|
||||
|
||||
onTargetChanged: {
|
||||
anchorBackend.rightTarget = currentText
|
||||
}
|
||||
onSameEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.SameEdge
|
||||
}
|
||||
onOppositeEdgeButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.OppositeEdge
|
||||
}
|
||||
onCenterButtonClicked: {
|
||||
anchorBackend.relativeAnchorTargetRight = AnchorBindingProxy.Center
|
||||
}
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
showAlternativeTargets: false
|
||||
visible: anchorBackend.horizontalCentered
|
||||
iconSource: StudioTheme.Constants.centerHorizontal
|
||||
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
||||
targetName: anchorBackend.horizontalTarget
|
||||
verticalAnchor: false
|
||||
buttonRow.visible: false
|
||||
|
||||
onTargetChanged: {
|
||||
anchorBackend.horizontalTarget = currentText
|
||||
}
|
||||
}
|
||||
|
||||
AnchorRow {
|
||||
showAlternativeTargets: false
|
||||
visible: anchorBackend.verticalCentered
|
||||
iconSource: StudioTheme.Constants.centerVertical
|
||||
anchorMargin: backendValues.anchors_verticalCenterOffset
|
||||
targetName: anchorBackend.verticalTarget
|
||||
verticalAnchor: true
|
||||
buttonRow.visible: false
|
||||
|
||||
onTargetChanged: {
|
||||
anchorBackend.verticalTarget = currentText
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,18 +23,17 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
FlickableSection {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
}
|
||||
FlickableSection {}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
@@ -42,77 +41,44 @@ Column {
|
||||
caption: qsTr("List View")
|
||||
|
||||
SectionLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Cache buffer")
|
||||
disabledState: !backendValues.cacheBuffer.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.cacheBuffer
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Navigation wraps")
|
||||
tooltip: qsTr("Whether the grid wraps key navigation.")
|
||||
disabledState: !backendValues.keyNavigationWraps.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.keyNavigationWraps
|
||||
text: backendValues.keyNavigationWraps.valueToString
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("Orientation of the list.")
|
||||
tooltip: qsTr("Orientation of the list")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ListView"
|
||||
model: ["Horizontal", "Vertical"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.orientation
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["Horizontal", "Vertical"]
|
||||
scope: "ListView"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Layout direction")
|
||||
disabledState: !backendValues.layoutDirection.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Qt"
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layoutDirection
|
||||
Layout.fillWidth: true
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
scope: "Qt"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Snap mode")
|
||||
tooltip: qsTr("Determines how the view scrolling will settle following a drag or flick.")
|
||||
disabledState: !backendValues.snapMode.isAvailable
|
||||
@@ -120,43 +86,84 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ListView"
|
||||
model: ["NoSnap", "SnapToItem", "SnapOneItem"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.snapMode
|
||||
Layout.fillWidth: true
|
||||
model: ["NoSnap", "SnapToItem", "SnapOneItem"]
|
||||
scope: "ListView"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Spacing")
|
||||
tooltip: qsTr("Spacing between components.")
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Cache")
|
||||
tooltip: qsTr("Cache buffer")
|
||||
disabledState: !backendValues.cacheBuffer.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.cacheBuffer
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Navigation wraps")
|
||||
tooltip: qsTr("Whether the grid wraps key navigation.")
|
||||
disabledState: !backendValues.keyNavigationWraps.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.keyNavigationWraps.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.keyNavigationWraps
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("List View Highlight")
|
||||
|
||||
SectionLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Label {
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Range")
|
||||
tooltip: qsTr("Highlight range")
|
||||
disabledState: !backendValues.highlightRangeMode.isAvailable
|
||||
@@ -164,142 +171,155 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "ListView"
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.highlightRangeMode
|
||||
Layout.fillWidth: true
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
scope: "ListView"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Move duration")
|
||||
tooltip: qsTr("Move animation duration of the highlight delegate.")
|
||||
disabledState: !backendValues.highlightMoveDuration.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightMoveDuration
|
||||
minimumValue: -1
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Move velocity")
|
||||
tooltip: qsTr("Move animation velocity of the highlight delegate.")
|
||||
disabledState: !backendValues.highlightMoveVelocity.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightMoveVelocity
|
||||
minimumValue: -1
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Resize duration")
|
||||
tooltip: qsTr("Resize animation duration of the highlight delegate.")
|
||||
disabledState: !backendValues.highlightResizeDuration.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightResizeDuration
|
||||
minimumValue: -1
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Resize velocity")
|
||||
tooltip: qsTr("Resize animation velocity of the highlight delegate.")
|
||||
disabledState: !backendValues.highlightResizeVelocity.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightResizeVelocity
|
||||
minimumValue: -1
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred begin")
|
||||
tooltip: qsTr("Preferred highlight begin - must be smaller than Preferred end.")
|
||||
disabledState: !backendValues.preferredHighlightBegin.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightBegin
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred end")
|
||||
tooltip: qsTr("Preferred highlight end - must be larger than Preferred begin.")
|
||||
disabledState: !backendValues.preferredHighlightEnd.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightEnd
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Follows current")
|
||||
tooltip: qsTr("Whether the highlight is managed by the view.")
|
||||
disabledState: !backendValues.highlightFollowsCurrentItem.isAvailable
|
||||
}
|
||||
|
||||
SectionLayout {
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.highlightFollowsCurrentItem
|
||||
text: backendValues.highlightFollowsCurrentItem.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightFollowsCurrentItem
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,57 +23,52 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
caption: qsTr("Mouse area")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Mouse Area")
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Enabled")
|
||||
PropertyLabel {
|
||||
text: qsTr("Enable")
|
||||
tooltip: qsTr("Accepts mouse events.")
|
||||
disabledState: !backendValues.enabled.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Area")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.enabled
|
||||
text: backendValues.enabled.valueToString
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
Label {
|
||||
text: qsTr("Hover enabled")
|
||||
tooltip: qsTr("Handles hover events.")
|
||||
disabledState: !backendValues.hoverEnabled.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Hover")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.hoverEnabled
|
||||
text: backendValues.hoverEnabled.valueToString
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Accepted buttons")
|
||||
tooltip: qsTr("Mouse buttons that the mouse area reacts to.")
|
||||
disabledState: !backendValues.acceptedButtons.isAvailable
|
||||
@@ -81,51 +76,19 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.acceptedButtons
|
||||
model: ["LeftButton", "RightButton", "MiddleButton", "BackButton", "ForwardButton", "AllButtons"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Qt"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Press and hold interval")
|
||||
tooltip: qsTr("Overrides the elapsed time in milliseconds before pressAndHold signal is emitted.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.pressAndHoldInterval
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Scroll gesture enabled")
|
||||
tooltip: qsTr("Responds to scroll gestures from non-mouse devices.")
|
||||
disabledState: !backendValues.scrollGestureEnabled.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.scrollGestureEnabled
|
||||
text: backendValues.scrollGestureEnabled.valueToString
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Cursor shape")
|
||||
tooltip: qsTr("Cursor shape for this mouse area.")
|
||||
disabledState: !backendValues.cursorShape.isAvailable
|
||||
@@ -133,6 +96,9 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.cursorShape
|
||||
model: ["ArrowCursor", "UpArrowCursor", "CrossCursor", "WaitCursor",
|
||||
"IBeamCursor", "SizeVerCursor", "SizeHorCursor", "SizeBDiagCursor",
|
||||
@@ -140,15 +106,50 @@ Column {
|
||||
"SplitHCursor", "PointingHandCursor", "ForbiddenCursor", "WhatsThisCursor",
|
||||
"BusyCursor", "OpenHandCursor", "ClosedHandCursor", "DragCopyCursor",
|
||||
"DragMoveCursor", "DragLinkCursor"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Qt"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Hold interval")
|
||||
tooltip: qsTr("Overrides the elapsed time in milliseconds before pressAndHold signal is emitted.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.pressAndHoldInterval
|
||||
minimumValue: 0
|
||||
maximumValue: 2000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Scroll gesture")
|
||||
tooltip: qsTr("Responds to scroll gestures from non-mouse devices.")
|
||||
disabledState: !backendValues.scrollGestureEnabled.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: qsTr("Enabled")
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.scrollGestureEnabled
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Prevent stealing")
|
||||
tooltip: qsTr("Stops mouse events from being stolen from this mouse area.")
|
||||
disabledState: !backendValues.preventStealing.isAvailable
|
||||
@@ -156,109 +157,114 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.preventStealing
|
||||
text: backendValues.preventStealing.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preventStealing
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Propagate composed events")
|
||||
PropertyLabel {
|
||||
text: qsTr("Propagate events")
|
||||
tooltip: qsTr("Automatically propagates composed mouse events to other mouse areas.")
|
||||
disabledState: !backendValues.propagateComposedEvents.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.propagateComposedEvents
|
||||
text: backendValues.propagateComposedEvents.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.propagateComposedEvents
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
caption: qsTr("Drag")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Drag")
|
||||
visible: backendValues.drag_target.isAvailable
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Target")
|
||||
tooltip: qsTr("ID of the component to drag.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick.QtObject"
|
||||
validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ }
|
||||
backendValue: backendValues.drag_target
|
||||
Layout.fillWidth: true
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Axis")
|
||||
tooltip: qsTr("Whether dragging can be done horizontally, vertically, or both.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
scope: "Drag"
|
||||
model: ["XAxis", "YAxis", "XAndYAxis"]
|
||||
backendValue: backendValues.drag_axis
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Filter children")
|
||||
tooltip: qsTr("Whether dragging overrides descendant mouse areas.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.drag_filterChildren
|
||||
text: backendValues.drag_filterChildren.valueToString
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Threshold")
|
||||
tooltip: qsTr("Threshold in pixels of when the drag operation should start.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.drag_threshold
|
||||
minimumValue: 0
|
||||
maximumValue: 5000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Filter children")
|
||||
tooltip: qsTr("Whether dragging overrides descendant mouse areas.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.drag_filterChildren.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.drag_filterChildren
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Smoothed")
|
||||
tooltip: qsTr("Moves targets only after the drag operation has started.\n"
|
||||
+ "When disabled, moves targets straight to the current mouse position.")
|
||||
@@ -266,13 +272,13 @@ Column {
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.drag_smoothed
|
||||
text: backendValues.drag_smoothed.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.drag_smoothed
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,62 +24,59 @@
|
||||
****************************************************************************/
|
||||
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
caption: qsTr("Number Animation")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("From")
|
||||
tooltip: qsTr("Start value for the animation.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -1
|
||||
backendValue: backendValues.from
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("To")
|
||||
tooltip: qsTr("End value for the animation.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
maximumValue: 9999999
|
||||
minimumValue: -1
|
||||
backendValue: backendValues.to
|
||||
Layout.fillWidth: true
|
||||
Layout.maximumWidth: 100
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AnimationTargetSection {
|
||||
AnimationTargetSection {}
|
||||
|
||||
}
|
||||
|
||||
AnimationSection {
|
||||
showEasingCurve: true
|
||||
}
|
||||
AnimationSection { showEasingCurve: true }
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,14 +24,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
AnimationSection {
|
||||
showDuration: false
|
||||
}
|
||||
AnimationSection { showDuration: false }
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,171 +23,186 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Path View")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
|
||||
Label {
|
||||
text: qsTr("Drag margin")
|
||||
tooltip: qsTr("Drag margin")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.dragMargin
|
||||
minimumValue: 0
|
||||
maximumValue: 100
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Flick deceleration")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.flickDeceleration
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Interactive")
|
||||
tooltip: qsTr("Allows users to drag or flick a path view.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.interactive
|
||||
text: backendValues.interactive.valueToString
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.interactive
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel { text: qsTr("Drag margin") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.dragMargin
|
||||
minimumValue: 0
|
||||
maximumValue: 100
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Flick deceleration") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.flickDeceleration
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Offset")
|
||||
tooltip: qsTr("Specifies how far along the path the items are from their initial positions. This is a real number that ranges from 0.0 to the count of items in the model.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.offset
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Item count")
|
||||
tooltip: qsTr("Number of items visible on the path at any one time.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.pathItemCount
|
||||
minimumValue: -1
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Path View Highlight")
|
||||
|
||||
SectionLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Label {
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Range")
|
||||
tooltip: qsTr("Highlight range")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "PathView"
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.highlightRangeMode
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ExpandingSpacer {
|
||||
model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"]
|
||||
scope: "PathView"
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Move duration")
|
||||
tooltip: qsTr("Move animation duration of the highlight delegate.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.highlightMoveDuration
|
||||
minimumValue: 0
|
||||
maximumValue: 1000
|
||||
decimals: 0
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred begin")
|
||||
tooltip: qsTr("Preferred highlight begin - must be smaller than Preferred end. Note that the user has to add a highlight component.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightBegin
|
||||
minimumValue: 0
|
||||
maximumValue: 1
|
||||
stepSize: 0.1
|
||||
decimals: 2
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Preferred end")
|
||||
tooltip: qsTr("Preferred highlight end - must be larger than Preferred begin. Note that the user has to add a highlight component.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.preferredHighlightEnd
|
||||
minimumValue: 0
|
||||
maximumValue: 1
|
||||
stepSize: 0.1
|
||||
decimals: 2
|
||||
}
|
||||
ExpandingSpacer {
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,13 +24,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
AnimationSection {
|
||||
}
|
||||
AnimationSection {}
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,8 +24,10 @@
|
||||
****************************************************************************/
|
||||
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
@@ -33,28 +35,31 @@ Column {
|
||||
Section {
|
||||
id: section
|
||||
caption: qsTr("Property Action")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
PropertyLabel {
|
||||
text: qsTr("Value")
|
||||
tooltip: qsTr("Value of the property.")
|
||||
}
|
||||
LineEdit {
|
||||
backendValue: backendValues.value
|
||||
Layout.fillWidth: true
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.value
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AnimationTargetSection {}
|
||||
|
||||
AnimationTargetSection {
|
||||
|
||||
}
|
||||
|
||||
AnimationSection {
|
||||
showDuration: false
|
||||
}
|
||||
AnimationSection { showDuration: false }
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,18 +24,14 @@
|
||||
****************************************************************************/
|
||||
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
AnimationTargetSection {
|
||||
AnimationTargetSection {}
|
||||
|
||||
}
|
||||
|
||||
AnimationSection {
|
||||
showEasingCurve: true
|
||||
}
|
||||
AnimationSection { showEasingCurve: true }
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,7 +24,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
@@ -41,164 +41,19 @@ Rectangle {
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
id: mainScrollView
|
||||
clip: true
|
||||
anchors.fill: parent
|
||||
|
||||
onWidthChanged: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||
Component.onCompleted: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||
|
||||
Column {
|
||||
id: rootColumn
|
||||
y: -1
|
||||
width: itemPane.width
|
||||
Section {
|
||||
caption: qsTr("Component")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Type")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
z: 2
|
||||
|
||||
RoundedPanel {
|
||||
Layout.fillWidth: true
|
||||
height: StudioTheme.Values.height
|
||||
|
||||
Label {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: StudioTheme.Values.inputHorizontalPadding
|
||||
anchors.topMargin: StudioTheme.Values.typeLabelVerticalShift
|
||||
text: backendValues.className.value
|
||||
}
|
||||
ToolTipArea {
|
||||
anchors.fill: parent
|
||||
onDoubleClicked: {
|
||||
typeLineEdit.text = backendValues.className.value
|
||||
typeLineEdit.visible = ! typeLineEdit.visible
|
||||
typeLineEdit.forceActiveFocus()
|
||||
}
|
||||
tooltip: qsTr("Changes the type of this component.")
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
ExpressionTextField {
|
||||
z: 2
|
||||
id: typeLineEdit
|
||||
completeOnlyTypes: true
|
||||
replaceCurrentTextByCompletion: true
|
||||
anchors.fill: parent
|
||||
|
||||
visible: false
|
||||
|
||||
showButtons: false
|
||||
fixedSize: true
|
||||
|
||||
property bool blockEditingFinished: false
|
||||
|
||||
onEditingFinished: {
|
||||
if (typeLineEdit.blockEditingFinished)
|
||||
return
|
||||
|
||||
typeLineEdit.blockEditingFinished = true
|
||||
|
||||
if (typeLineEdit.visible)
|
||||
changeTypeName(typeLineEdit.text.trim())
|
||||
typeLineEdit.visible = false
|
||||
|
||||
typeLineEdit.blockEditingFinished = false
|
||||
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
|
||||
onRejected: {
|
||||
typeLineEdit.visible = false
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Item {
|
||||
Layout.preferredWidth: 20
|
||||
Layout.preferredHeight: 20
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("ID")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
spacing: 2
|
||||
LineEdit {
|
||||
id: lineEdit
|
||||
|
||||
backendValue: backendValues.id
|
||||
placeholderText: qsTr("ID")
|
||||
text: backendValues.id.value
|
||||
Layout.fillWidth: true
|
||||
width: 240
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: aliasIndicator
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
implicitWidth: StudioTheme.Values.height
|
||||
implicitHeight: StudioTheme.Values.height
|
||||
z: 10
|
||||
|
||||
Label {
|
||||
id: aliasIndicatorIcon
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
text: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Constants.idAliasOff
|
||||
|
||||
return hasAliasExport ? StudioTheme.Constants.idAliasOn : StudioTheme.Constants.idAliasOff
|
||||
}
|
||||
color: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Values.themeTextColorDisabled
|
||||
|
||||
return hasAliasExport ? StudioTheme.Values.themeInteraction : StudioTheme.Values.themeTextColor
|
||||
}
|
||||
font.family: StudioTheme.Constants.iconFont.family
|
||||
font.pixelSize: Math.round(16 * StudioTheme.Values.scaleFactor)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
states: [
|
||||
State {
|
||||
name: "hovered"
|
||||
when: toolTipArea.containsMouse && aliasIndicatorIcon.enabled
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
scale: 1.2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
id: toolTipArea
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
onClicked: toogleExportAlias()
|
||||
tooltip: qsTr("Exports this component as an alias property of the root component.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
height: 4
|
||||
width: 4
|
||||
}
|
||||
ComponentSection {}
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,79 +23,69 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Color")
|
||||
backendValue: backendValues.color
|
||||
supportGradient: backendValues.gradient.isAvailable
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Border Color")
|
||||
visible: backendValues.border_color.isAvailable
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Border Color")
|
||||
backendValue: backendValues.border_color
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Rectangle")
|
||||
|
||||
SectionLayout {
|
||||
rows: 2
|
||||
Label {
|
||||
PropertyLabel { text: qsTr("Color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.color
|
||||
supportGradient: backendValues.gradient.isAvailable
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Border color")
|
||||
visible: backendValues.border_color.isAvailable
|
||||
}
|
||||
|
||||
ColorEditor {
|
||||
visible: backendValues.border_color.isAvailable
|
||||
backendValue: backendValues.border_color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Border")
|
||||
disabledState: !backendValues.border_width.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.border_width
|
||||
hasSlider: true
|
||||
Layout.preferredWidth: 120
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: qsTr("Radius")
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Radius") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.radius
|
||||
hasSlider: true
|
||||
Layout.preferredWidth: 120
|
||||
minimumValue: 0
|
||||
maximumValue: Math.min(backendValues.height.value, backendValues.width.value) / 2
|
||||
}
|
||||
ExpandingSpacer {
|
||||
|
||||
}
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,53 +23,58 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Row")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Layout direction")
|
||||
disabledState: !backendValues.layoutDirection.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
backendValue: backendValues.layoutDirection
|
||||
Layout.fillWidth: true
|
||||
scope: "Qt"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Spacing")
|
||||
}
|
||||
PropertyLabel { text: qsTr("Spacing") }
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.spacing
|
||||
minimumValue: -4000
|
||||
maximumValue: 4000
|
||||
decimals: 0
|
||||
}
|
||||
|
||||
ExpandingSpacer {
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Layout direction")
|
||||
disabledState: !backendValues.layoutDirection.isAvailable
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.layoutDirection
|
||||
model: ["LeftToRight", "RightToLeft"]
|
||||
scope: "Qt"
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
}
|
||||
PaddingSection {}
|
||||
}
|
||||
|
@@ -23,33 +23,30 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
StudioControls.ComboBox {
|
||||
|
||||
property string targetName: anchorBackend.topTarget
|
||||
property color textColor: Theme.color(Theme.PanelTextColorLight)
|
||||
|
||||
actionIndicatorVisible: false
|
||||
|
||||
id: targetComboBox
|
||||
|
||||
Connections {
|
||||
target: anchorBackend
|
||||
onInvalidated: {
|
||||
targetComboBox.currentIndex =
|
||||
anchorBackend.indexOfPossibleTargetItem(targetComboBox.targetName)
|
||||
}
|
||||
}
|
||||
property string targetName: anchorBackend.topTarget
|
||||
|
||||
actionIndicatorVisible: false
|
||||
model: anchorBackend.possibleTargetItems
|
||||
|
||||
onTargetNameChanged: {
|
||||
targetComboBox.currentIndex =
|
||||
anchorBackend.indexOfPossibleTargetItem(targetComboBox.targetName)
|
||||
}
|
||||
|
||||
model: anchorBackend.possibleTargetItems
|
||||
Connections {
|
||||
target: anchorBackend
|
||||
function onInvalidated() {
|
||||
targetComboBox.currentIndex =
|
||||
anchorBackend.indexOfPossibleTargetItem(targetComboBox.targetName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,64 +23,30 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
StandardTextSection {
|
||||
showVerticalAlignment: true
|
||||
showFormatProperty: true
|
||||
CharacterSection {
|
||||
richTextEditorAvailable: true
|
||||
showVerticalAlignment: true
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Text Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Text Color")
|
||||
backendValue: backendValues.color
|
||||
supportGradient: false
|
||||
}
|
||||
TextInputSection {}
|
||||
|
||||
TextExtrasSection {
|
||||
showWrapMode: true
|
||||
showFormatProperty: true
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Selection Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Selection Color")
|
||||
backendValue: backendValues.selectionColor
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Selected Text Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Selected Text Color")
|
||||
backendValue: backendValues.selectedTextColor
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
FontSection {
|
||||
FontExtrasSection {
|
||||
showStyle: false
|
||||
}
|
||||
|
||||
TextInputSection {
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
visible: minorQtQuickVersion > 5
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,166 +23,230 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: textInputSection
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Text Input")
|
||||
|
||||
property bool isTextInput: false
|
||||
id: textInputSection
|
||||
|
||||
SectionLayout {
|
||||
rows: 4
|
||||
columns: 2
|
||||
PropertyLabel { text: qsTr("Selection color") }
|
||||
|
||||
Label {
|
||||
text: qsTr("Mouse selection mode")
|
||||
}
|
||||
ComboBox {
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.mouseSelectionMode
|
||||
scope: "TextInput"
|
||||
model: ["SelectCharacters", "SelectWords"]
|
||||
ColorEditor {
|
||||
backendValue: backendValues.selectionColor
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel { text: qsTr("Selected text color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.selectedTextColor
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Selection mode") }
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.mouseSelectionMode
|
||||
scope: "TextInput"
|
||||
model: ["SelectCharacters", "SelectWords"]
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: textInputSection.isTextInput
|
||||
text: qsTr("Input mask")
|
||||
}
|
||||
|
||||
LineEdit {
|
||||
SecondColumnLayout {
|
||||
visible: textInputSection.isTextInput
|
||||
backendValue: backendValues.inputMask
|
||||
Layout.fillWidth: true
|
||||
showTranslateCheckBox: false
|
||||
|
||||
LineEdit {
|
||||
backendValue: backendValues.inputMask
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
showTranslateCheckBox: false
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: textInputSection.isTextInput
|
||||
text: qsTr("Echo mode")
|
||||
}
|
||||
|
||||
ComboBox {
|
||||
SecondColumnLayout {
|
||||
visible: textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.echoMode
|
||||
scope: "TextInput"
|
||||
model: ["Normal", "Password", "PasswordEchoOnEdit", "NoEcho"]
|
||||
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.echoMode
|
||||
scope: "TextInput"
|
||||
model: ["Normal", "Password", "PasswordEchoOnEdit", "NoEcho"]
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: textInputSection.isTextInput
|
||||
text: qsTr("Password character")
|
||||
tooltip: qsTr("Character displayed when users enter passwords.")
|
||||
}
|
||||
|
||||
LineEdit {
|
||||
SecondColumnLayout {
|
||||
visible: textInputSection.isTextInput
|
||||
backendValue: backendValues.passwordCharacter
|
||||
Layout.fillWidth: true
|
||||
showTranslateCheckBox: false
|
||||
|
||||
LineEdit {
|
||||
backendValue: backendValues.passwordCharacter
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
showTranslateCheckBox: false
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: !textInputSection.isTextInput
|
||||
text: qsTr("Tab stop distance")
|
||||
tooltip: qsTr("Default distance between tab stops in device units.")
|
||||
}
|
||||
SpinBox {
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: !textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.tabStopDistance
|
||||
maximumValue: 200
|
||||
minimumValue: 0
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.tabStopDistance
|
||||
maximumValue: 200
|
||||
minimumValue: 0
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "px" }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: !textInputSection.isTextInput
|
||||
text: qsTr("Text margin")
|
||||
tooltip: qsTr("Margin around the text in the Text Edit in pixels.")
|
||||
}
|
||||
SpinBox {
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: !textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.textMargin
|
||||
maximumValue: 200
|
||||
minimumValue: -200
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.textMargin
|
||||
maximumValue: 200
|
||||
minimumValue: -200
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel { text: "px" }
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
Label {
|
||||
PropertyLabel {
|
||||
visible: textInputSection.isTextInput
|
||||
text: qsTr("Maximum length")
|
||||
tooltip: qsTr("Maximum permitted length of the text in the Text Input.")
|
||||
}
|
||||
SpinBox {
|
||||
visible: textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
backendValue: backendValues.maximumLength
|
||||
minimumValue: 0
|
||||
maximumValue: 32767
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Flags")
|
||||
Layout.alignment: Qt.AlignTop
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ColumnLayout {
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Read only")
|
||||
backendValue: backendValues.readOnly
|
||||
}
|
||||
visible: textInputSection.isTextInput
|
||||
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Cursor visible")
|
||||
backendValue: backendValues.cursorVisible
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Active focus on press")
|
||||
backendValue: backendValues.activeFocusOnPress
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
visible: textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Auto scroll")
|
||||
backendValue: backendValues.autoScroll
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Overwrite mode")
|
||||
backendValue: backendValues.overwriteMode
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Persistent selection")
|
||||
backendValue: backendValues.persistentSelection
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Select by mouse")
|
||||
backendValue: backendValues.selectByMouse
|
||||
}
|
||||
|
||||
CheckBox {
|
||||
visible: !textInputSection.isTextInput
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Select by keyboard")
|
||||
backendValue: backendValues.selectByKeyboard
|
||||
}
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: backendValues.maximumLength
|
||||
minimumValue: 0
|
||||
maximumValue: 32767
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
component FlagItem : SecondColumnLayout {
|
||||
property alias backendValue: checkBox.backendValue
|
||||
CheckBox {
|
||||
id: checkBox
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
text: backendValue.valueToString
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Read only") }
|
||||
|
||||
FlagItem { backendValue: backendValues.readOnly }
|
||||
|
||||
PropertyLabel { text: qsTr("Cursor visible") }
|
||||
|
||||
FlagItem { backendValue: backendValues.cursorVisible }
|
||||
|
||||
PropertyLabel { text: qsTr("Focus on press") }
|
||||
|
||||
FlagItem { backendValue: backendValues.activeFocusOnPress }
|
||||
|
||||
PropertyLabel {
|
||||
visible: textInputSection.isTextInput
|
||||
text: qsTr("Auto scroll")
|
||||
}
|
||||
|
||||
FlagItem {
|
||||
visible: textInputSection.isTextInput
|
||||
backendValue: backendValues.autoScroll
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Overwrite mode") }
|
||||
|
||||
FlagItem { backendValue: backendValues.overwriteMode }
|
||||
|
||||
PropertyLabel { text: qsTr("Persistent selection") }
|
||||
|
||||
FlagItem { backendValue: backendValues.persistentSelection }
|
||||
|
||||
PropertyLabel { text: qsTr("Select by mouse") }
|
||||
|
||||
FlagItem { backendValue: backendValues.selectByMouse }
|
||||
|
||||
PropertyLabel {
|
||||
visible: !textInputSection.isTextInput
|
||||
text: qsTr("Select by keyboard")
|
||||
}
|
||||
|
||||
FlagItem {
|
||||
visible: !textInputSection.isTextInput
|
||||
backendValue: backendValues.selectByKeyboard
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,65 +23,32 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
StandardTextSection {
|
||||
CharacterSection {
|
||||
showVerticalAlignment: true
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Text Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Text Color")
|
||||
backendValue: backendValues.color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Selection Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Selection Color")
|
||||
backendValue: backendValues.selectionColor
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Selected Text Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Selected Text Color")
|
||||
backendValue: backendValues.selectedTextColor
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
FontSection {
|
||||
showStyle: false
|
||||
}
|
||||
|
||||
TextInputSection {
|
||||
isTextInput: true
|
||||
}
|
||||
|
||||
TextExtrasSection {
|
||||
showWrapMode: true
|
||||
showFormatProperty: true
|
||||
}
|
||||
|
||||
FontExtrasSection {
|
||||
showStyle: false
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
visible: minorQtQuickVersion > 5
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,54 +23,33 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
StandardTextSection {
|
||||
CharacterSection {
|
||||
richTextEditorAvailable: true
|
||||
showLineHeight: true
|
||||
showVerticalAlignment: true
|
||||
showFormatProperty: true
|
||||
}
|
||||
|
||||
TextExtrasSection {
|
||||
showElide: true
|
||||
showWrapMode: true
|
||||
showFormatProperty: true
|
||||
showFontSizeMode: true
|
||||
showLineHeight: true
|
||||
richTextEditorAvailable: true
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Text Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Text Color")
|
||||
backendValue: backendValues.color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
FontExtrasSection {
|
||||
showStyle: true
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Style Color")
|
||||
visible: backendValues.styleColor.isAvailable
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Style Color")
|
||||
backendValue: backendValues.styleColor
|
||||
supportGradient: false
|
||||
}
|
||||
PaddingSection {
|
||||
visible: minorQtQuickVersion > 5
|
||||
}
|
||||
|
||||
FontSection {
|
||||
showStyle: true
|
||||
}
|
||||
|
||||
PaddingSection {
|
||||
visible: minorQtQuickVersion > 5
|
||||
}
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import QtQuickDesignerTheme 1.0
|
||||
|
||||
@@ -42,8 +42,8 @@ Rectangle {
|
||||
|
||||
Label {
|
||||
id: test
|
||||
text: qsTr("None or multiple components selected.");
|
||||
anchors.fill: parent
|
||||
text: qsTr("None or multiple components selected.")
|
||||
anchors.fill: parent // TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -24,10 +24,11 @@
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.0
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuickDesignerTheme 1.0
|
||||
import HelperWidgets 2.0
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
import "../QtQuick" as Q
|
||||
|
||||
Rectangle {
|
||||
id: itemPane
|
||||
@@ -47,162 +48,13 @@ Rectangle {
|
||||
id: rootColumn
|
||||
y: -1
|
||||
width: itemPane.width
|
||||
Section {
|
||||
caption: qsTr("Component")
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
SectionLayout {
|
||||
Label {
|
||||
text: qsTr("Type")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
z: 2
|
||||
|
||||
RoundedPanel {
|
||||
Layout.fillWidth: true
|
||||
height: StudioTheme.Values.height
|
||||
|
||||
Label {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: StudioTheme.Values.inputHorizontalPadding
|
||||
anchors.topMargin: StudioTheme.Values.typeLabelVerticalShift
|
||||
text: backendValues.className.value
|
||||
}
|
||||
ToolTipArea {
|
||||
anchors.fill: parent
|
||||
onDoubleClicked: {
|
||||
typeLineEdit.text = backendValues.className.value
|
||||
typeLineEdit.visible = ! typeLineEdit.visible
|
||||
typeLineEdit.forceActiveFocus()
|
||||
}
|
||||
tooltip: qsTr("Change the type of this component.")
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
ExpressionTextField {
|
||||
z: 2
|
||||
id: typeLineEdit
|
||||
completeOnlyTypes: true
|
||||
replaceCurrentTextByCompletion: true
|
||||
anchors.fill: parent
|
||||
|
||||
visible: false
|
||||
|
||||
showButtons: false
|
||||
fixedSize: true
|
||||
|
||||
property bool blockEditingFinished: false
|
||||
|
||||
onEditingFinished: {
|
||||
if (typeLineEdit.blockEditingFinished)
|
||||
return
|
||||
|
||||
typeLineEdit.blockEditingFinished = true
|
||||
|
||||
if (typeLineEdit.visible)
|
||||
changeTypeName(typeLineEdit.text.trim())
|
||||
typeLineEdit.visible = false
|
||||
|
||||
typeLineEdit.blockEditingFinished = false
|
||||
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
|
||||
onRejected: {
|
||||
typeLineEdit.visible = false
|
||||
typeLineEdit.completionList.model = null
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Item {
|
||||
Layout.preferredWidth: 20
|
||||
Layout.preferredHeight: 20
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("ID")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
spacing: 2
|
||||
LineEdit {
|
||||
id: lineEdit
|
||||
|
||||
backendValue: backendValues.id
|
||||
placeholderText: qsTr("ID")
|
||||
text: backendValues.id.value
|
||||
Layout.fillWidth: true
|
||||
width: 240
|
||||
showTranslateCheckBox: false
|
||||
showExtendedFunctionButton: false
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: aliasIndicator
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
implicitWidth: StudioTheme.Values.height
|
||||
implicitHeight: StudioTheme.Values.height
|
||||
z: 10
|
||||
|
||||
Label {
|
||||
id: aliasIndicatorIcon
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
text: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Constants.idAliasOff
|
||||
|
||||
return hasAliasExport ? StudioTheme.Constants.idAliasOn : StudioTheme.Constants.idAliasOff
|
||||
}
|
||||
color: {
|
||||
if (!aliasIndicatorIcon.enabled)
|
||||
return StudioTheme.Values.themeTextColorDisabled
|
||||
|
||||
return hasAliasExport ? StudioTheme.Values.themeInteraction : StudioTheme.Values.themeTextColor
|
||||
}
|
||||
font.family: StudioTheme.Constants.iconFont.family
|
||||
font.pixelSize: Math.round(16 * StudioTheme.Values.scaleFactor)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
states: [
|
||||
State {
|
||||
name: "hovered"
|
||||
when: toolTipArea.containsMouse && aliasIndicatorIcon.enabled
|
||||
PropertyChanges {
|
||||
target: aliasIndicatorIcon
|
||||
scale: 1.2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
id: toolTipArea
|
||||
enabled: !modelNodeBackend.multiSelection
|
||||
anchors.fill: parent
|
||||
onClicked: toogleExportAlias()
|
||||
tooltip: qsTr("Toggles whether this component is exported as an alias property of the root component.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
height: 4
|
||||
width: 4
|
||||
}
|
||||
Q.ComponentSection {}
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Loader {
|
||||
id: specificsTwo
|
||||
anchors.left: parent.left
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,7 +23,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
|
@@ -32,13 +32,9 @@ Row {
|
||||
id: alignmentHorizontalButtons
|
||||
|
||||
property bool blueHighlight: false
|
||||
|
||||
property variant backendValue: backendValues.horizontalAlignment;
|
||||
|
||||
property variant value: backendValue.enumeration
|
||||
|
||||
property bool baseStateFlag: isBaseState;
|
||||
|
||||
property color __currentColor: blueHighlight ? StudioTheme.Values.themeIconColorInteraction
|
||||
: StudioTheme.Values.themeIconColor
|
||||
|
||||
@@ -48,37 +44,32 @@ Row {
|
||||
buttonAlignRight.checked = false
|
||||
|
||||
if (value !== undefined) {
|
||||
if (value === "AlignLeft") {
|
||||
if (value === "AlignLeft")
|
||||
buttonAlignLeft.checked = true
|
||||
} else if (value === "AlignHCenter") {
|
||||
else if (value === "AlignHCenter")
|
||||
buttonAlignHCenter.checked = true
|
||||
} else if (value === "AlignRight") {
|
||||
else if (value === "AlignRight")
|
||||
buttonAlignRight.checked = true
|
||||
}
|
||||
}
|
||||
evaluate()
|
||||
}
|
||||
|
||||
property bool isInModel: backendValue.isInModel;
|
||||
onIsInModelChanged: {
|
||||
evaluate();
|
||||
}
|
||||
property bool isInSubState: backendValue.isInSubState;
|
||||
onIsInSubStateChanged: {
|
||||
evaluate();
|
||||
}
|
||||
property bool isInModel: backendValue.isInModel
|
||||
onIsInModelChanged: evaluate()
|
||||
property bool isInSubState: backendValue.isInSubState
|
||||
onIsInSubStateChanged: evaluate()
|
||||
|
||||
function evaluate() {
|
||||
if (baseStateFlag) {
|
||||
if (backendValue !== null && backendValue.isInModel)
|
||||
blueHighlight = true;
|
||||
blueHighlight = true
|
||||
else
|
||||
blueHighlight = false;
|
||||
blueHighlight = false
|
||||
} else {
|
||||
if (backendValue !== null && backendValue.isInSubState)
|
||||
blueHighlight = true;
|
||||
blueHighlight = true
|
||||
else
|
||||
blueHighlight = false;
|
||||
blueHighlight = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,9 +87,7 @@ Row {
|
||||
actionIndicator.onClicked: extFuncLogic.show()
|
||||
actionIndicator.forceVisible: extFuncLogic.menuVisible
|
||||
|
||||
StudioControls.ButtonGroup {
|
||||
id: group
|
||||
}
|
||||
StudioControls.ButtonGroup { id: group }
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: buttonAlignLeft
|
||||
@@ -112,6 +101,7 @@ Row {
|
||||
backendValue.setEnumeration("Text", "AlignLeft")
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: buttonAlignHCenter
|
||||
buttonIcon: StudioTheme.Constants.textAlignCenter
|
||||
@@ -124,6 +114,7 @@ Row {
|
||||
backendValue.setEnumeration("Text", "AlignHCenter")
|
||||
}
|
||||
}
|
||||
|
||||
StudioControls.AbstractButton {
|
||||
id: buttonAlignRight
|
||||
buttonIcon: StudioTheme.Constants.textAlignRight
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
@@ -23,7 +23,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
@@ -33,168 +33,159 @@ StudioControls.ButtonRow {
|
||||
|
||||
enabled: anchorBackend.hasParent && isBaseState
|
||||
opacity: enabled ? 1 : 0.5
|
||||
|
||||
actionIndicatorVisible: false
|
||||
|
||||
StudioControls.ButtonGroup {
|
||||
id: group
|
||||
}
|
||||
StudioControls.ButtonGroup { id: group }
|
||||
|
||||
AbstractButton {
|
||||
property bool topAnchored: anchorBackend.topAnchored
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.anchorTop
|
||||
tooltip: qsTr("Anchor component to the top.")
|
||||
|
||||
property bool topAnchored: anchorBackend.topAnchored
|
||||
onTopAnchoredChanged: {
|
||||
checked = topAnchored
|
||||
}
|
||||
onTopAnchoredChanged: checked = topAnchored
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.bottomAnchored)
|
||||
anchorBackend.verticalCentered = false;
|
||||
anchorBackend.topAnchored = true;
|
||||
anchorBackend.verticalCentered = false
|
||||
|
||||
anchorBackend.topAnchored = true
|
||||
} else {
|
||||
anchorBackend.topAnchored = false;
|
||||
anchorBackend.topAnchored = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool bottomAnchored: anchorBackend.bottomAnchored
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.anchorBottom
|
||||
tooltip: qsTr("Anchor component to the bottom.")
|
||||
|
||||
property bool bottomAnchored: anchorBackend.bottomAnchored
|
||||
onBottomAnchoredChanged: {
|
||||
checked = bottomAnchored
|
||||
}
|
||||
onBottomAnchoredChanged: checked = bottomAnchored
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.topAnchored)
|
||||
anchorBackend.verticalCentered = false;
|
||||
anchorBackend.bottomAnchored = true;
|
||||
anchorBackend.verticalCentered = false
|
||||
|
||||
anchorBackend.bottomAnchored = true
|
||||
} else {
|
||||
anchorBackend.bottomAnchored = false;
|
||||
anchorBackend.bottomAnchored = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool leftAnchored: anchorBackend.leftAnchored
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.anchorLeft
|
||||
tooltip: qsTr("Anchor component to the left.")
|
||||
|
||||
property bool leftAnchored: anchorBackend.leftAnchored
|
||||
onLeftAnchoredChanged: {
|
||||
checked = leftAnchored
|
||||
}
|
||||
onLeftAnchoredChanged: checked = leftAnchored
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.rightAnchored)
|
||||
anchorBackend.horizontalCentered = false;
|
||||
anchorBackend.leftAnchored = true;
|
||||
anchorBackend.horizontalCentered = false
|
||||
|
||||
anchorBackend.leftAnchored = true
|
||||
} else {
|
||||
anchorBackend.leftAnchored = false;
|
||||
anchorBackend.leftAnchored = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool rightAnchored: anchorBackend.rightAnchored
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.anchorRight
|
||||
tooltip: qsTr("Anchor component to the right.")
|
||||
|
||||
property bool rightAnchored: anchorBackend.rightAnchored
|
||||
onRightAnchoredChanged: {
|
||||
checked = rightAnchored
|
||||
}
|
||||
onRightAnchoredChanged: checked = rightAnchored
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.leftAnchored)
|
||||
anchorBackend.horizontalCentered = false;
|
||||
anchorBackend.rightAnchored = true;
|
||||
anchorBackend.horizontalCentered = false
|
||||
|
||||
anchorBackend.rightAnchored = true
|
||||
} else {
|
||||
anchorBackend.rightAnchored = false;
|
||||
anchorBackend.rightAnchored = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 16 + 2 * StudioTheme.Values.border
|
||||
height: 5
|
||||
Spacer {
|
||||
implicitWidth: 16 + 2 * StudioTheme.Values.border
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool isFilled: anchorBackend.isFilled
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.anchorFill
|
||||
tooltip: qsTr("Fill parent component.")
|
||||
|
||||
property bool isFilled: anchorBackend.isFilled
|
||||
onIsFilledChanged: {
|
||||
checked = isFilled
|
||||
}
|
||||
onIsFilledChanged: checked = isFilled
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
anchorBackend.fill();
|
||||
} else {
|
||||
anchorBackend.resetLayout();
|
||||
}
|
||||
if (checked)
|
||||
anchorBackend.fill()
|
||||
else
|
||||
anchorBackend.resetLayout()
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 16 + 2 * StudioTheme.Values.border
|
||||
height: 5
|
||||
Spacer {
|
||||
implicitWidth: 16 + 2 * StudioTheme.Values.border
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool verticalCentered: anchorBackend.verticalCentered
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.centerVertical
|
||||
tooltip: qsTr("Anchor component vertically.")
|
||||
|
||||
property bool verticalCentered: anchorBackend.verticalCentered
|
||||
onVerticalCenteredChanged: {
|
||||
checked = verticalCentered
|
||||
}
|
||||
onVerticalCenteredChanged: checked = verticalCentered
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.topAnchored && anchorBackend.bottomAnchored) {
|
||||
anchorBackend.topAnchored = false;
|
||||
anchorBackend.bottomAnchored = false;
|
||||
anchorBackend.topAnchored = false
|
||||
anchorBackend.bottomAnchored = false
|
||||
}
|
||||
anchorBackend.verticalCentered = true;
|
||||
anchorBackend.verticalCentered = true
|
||||
} else {
|
||||
anchorBackend.verticalCentered = false;
|
||||
anchorBackend.verticalCentered = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbstractButton {
|
||||
property bool horizontalCentered: anchorBackend.horizontalCentered
|
||||
|
||||
checkable: true
|
||||
buttonIcon: StudioTheme.Constants.centerHorizontal
|
||||
tooltip: qsTr("Anchor component horizontally.")
|
||||
|
||||
property bool horizontalCentered: anchorBackend.horizontalCentered
|
||||
onHorizontalCenteredChanged: {
|
||||
checked = horizontalCentered
|
||||
}
|
||||
onHorizontalCenteredChanged: checked = horizontalCentered
|
||||
|
||||
onClicked: {
|
||||
if (checked) {
|
||||
if (anchorBackend.leftAnchored && anchorBackend.rightAnchored) {
|
||||
anchorBackend.leftAnchored = false;
|
||||
anchorBackend.rightAnchored = false;
|
||||
anchorBackend.leftAnchored = false
|
||||
anchorBackend.rightAnchored = false
|
||||
}
|
||||
anchorBackend.horizontalCentered = true;
|
||||
anchorBackend.horizontalCentered = true
|
||||
} else {
|
||||
anchorBackend.horizontalCentered = false;
|
||||
anchorBackend.horizontalCentered = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick 2.15
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
@@ -62,23 +62,23 @@ StudioControls.Button {
|
||||
property bool baseStateFlag: isBaseState
|
||||
onBaseStateFlagChanged: evaluate()
|
||||
|
||||
property bool isInModel: button.backendValue.isInModel
|
||||
property bool isInModel: button.backendValue === undefined ? false
|
||||
: button.backendValue.isInModel
|
||||
onIsInModelChanged: evaluate()
|
||||
|
||||
|
||||
property bool isInSubState: button.backendValue.isInSubState
|
||||
property bool isInSubState: button.backendValue === undefined ? false
|
||||
: button.backendValue.isInSubState
|
||||
onIsInSubStateChanged: evaluate()
|
||||
|
||||
property variant theValue: button.backendValue.value
|
||||
property variant theValue: button.backendValue === undefined ? 0 : button.backendValue.value
|
||||
onTheValueChanged: {
|
||||
evaluate()
|
||||
button.checked = innerObject.theValue
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
button.backendValue.value = button.checked
|
||||
}
|
||||
onCheckedChanged: button.backendValue.value = button.checked
|
||||
|
||||
ExtendedFunctionLogic {
|
||||
id: extFuncLogic
|
||||
|
@@ -0,0 +1,399 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Templates 2.15 as T
|
||||
import HelperWidgets 2.0
|
||||
import StudioControls 1.0 as StudioControls
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Section {
|
||||
id: root
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Character")
|
||||
|
||||
property bool showVerticalAlignment: false
|
||||
property bool showLineHeight: false
|
||||
property bool richTextEditorAvailable: false
|
||||
|
||||
property string fontName: "font"
|
||||
property bool showStyle: false
|
||||
|
||||
function getBackendValue(name) {
|
||||
return backendValues[root.fontName + "_" + name]
|
||||
}
|
||||
|
||||
property variant fontFamily: getBackendValue("family")
|
||||
property variant pointSize: getBackendValue("pointSize")
|
||||
property variant pixelSize: getBackendValue("pixelSize")
|
||||
|
||||
property variant boldStyle: getBackendValue("bold")
|
||||
property variant italicStyle: getBackendValue("italic")
|
||||
property variant underlineStyle: getBackendValue("underline")
|
||||
property variant strikeoutStyle: getBackendValue("strikeout")
|
||||
|
||||
onPointSizeChanged: sizeWidget.setPointPixelSize()
|
||||
onPixelSizeChanged: sizeWidget.setPointPixelSize()
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel { text: qsTr("Text") }
|
||||
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: backendValues.text
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap }
|
||||
|
||||
Rectangle {
|
||||
id: richTextEditorIndicator
|
||||
visible: root.richTextEditorAvailable
|
||||
color: "transparent"
|
||||
border.color: "transparent"
|
||||
implicitWidth: StudioTheme.Values.iconAreaWidth // TODO dedicated value
|
||||
implicitHeight: StudioTheme.Values.height // TODO dedicated value
|
||||
|
||||
T.Label {
|
||||
id: richTextEditorIcon
|
||||
anchors.fill: parent
|
||||
text: StudioTheme.Constants.edit
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
font.family: StudioTheme.Constants.iconFont.family
|
||||
font.pixelSize: StudioTheme.Values.myIconFontSize + 4 // TODO
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
states: [
|
||||
State {
|
||||
name: "default"
|
||||
when: !richTextEditorMouseArea.containsMouse
|
||||
PropertyChanges {
|
||||
target: richTextEditorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColor
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "hover"
|
||||
when: richTextEditorMouseArea.containsMouse
|
||||
PropertyChanges {
|
||||
target: richTextEditorIcon
|
||||
color: StudioTheme.Values.themeLinkIndicatorColorHover
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: richTextEditorMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: richTextDialogLoader.show()
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
|
||||
RichTextEditor {
|
||||
onRejected: hideWidget()
|
||||
onAccepted: hideWidget()
|
||||
}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Font") }
|
||||
|
||||
SecondColumnLayout {
|
||||
FontComboBox {
|
||||
id: fontComboBox
|
||||
property string familyName: backendValue.value
|
||||
backendValue: root.fontFamily
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Weight")
|
||||
tooltip: qsTr("Font's weight.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: getBackendValue("weight")
|
||||
model: ["Normal", "Light", "ExtraLight", "Thin", "Medium", "DemiBold", "Bold", "ExtraBold", "Black"]
|
||||
scope: "Font"
|
||||
enabled: !styleNameComboBox.styleSet
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Style name")
|
||||
tooltip: qsTr("Font's style.")
|
||||
disabledState: !styleNameComboBox.enabled
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: styleNameComboBox
|
||||
property bool styleSet: backendValue.isInModel
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
backendValue: getBackendValue("styleName")
|
||||
model: styleNamesForFamily(fontComboBox.familyName)
|
||||
valueType: ComboBox.String
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Size") }
|
||||
|
||||
SecondColumnLayout {
|
||||
id: sizeWidget
|
||||
property bool selectionFlag: selectionChanged
|
||||
|
||||
property bool pixelSize: sizeType.currentText === "px"
|
||||
property bool isSetup
|
||||
|
||||
function setPointPixelSize() {
|
||||
sizeWidget.isSetup = true
|
||||
sizeType.currentIndex = 1
|
||||
|
||||
if (root.pixelSize.isInModel)
|
||||
sizeType.currentIndex = 0
|
||||
|
||||
sizeWidget.isSetup = false
|
||||
}
|
||||
|
||||
onSelectionFlagChanged: sizeWidget.setPointPixelSize()
|
||||
|
||||
Item {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
height: sizeSpinBox.height
|
||||
|
||||
SpinBox {
|
||||
id: sizeSpinBox
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
minimumValue: 0
|
||||
visible: !sizeWidget.pixelSize
|
||||
z: !sizeWidget.pixelSize ? 1 : 0
|
||||
maximumValue: 400
|
||||
backendValue: pointSize
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
width: implicitWidth
|
||||
minimumValue: 0
|
||||
visible: sizeWidget.pixelSize
|
||||
z: sizeWidget.pixelSize ? 1 : 0
|
||||
maximumValue: 400
|
||||
backendValue: pixelSize
|
||||
}
|
||||
}
|
||||
|
||||
Spacer {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnGap
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
StudioControls.ComboBox {
|
||||
id: sizeType
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
width: implicitWidth
|
||||
model: ["px", "pt"]
|
||||
actionIndicatorVisible: false
|
||||
|
||||
onActivated: {
|
||||
if (sizeWidget.isSetup)
|
||||
return
|
||||
|
||||
if (sizeType.currentText === "px") {
|
||||
pointSize.resetValue()
|
||||
pixelSize.value = 8
|
||||
} else {
|
||||
pixelSize.resetValue()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Text color") }
|
||||
|
||||
ColorEditor {
|
||||
backendValue: backendValues.color
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Emphasis") }
|
||||
|
||||
FontStyleButtons {
|
||||
bold: root.boldStyle
|
||||
italic: root.italicStyle
|
||||
underline: root.underlineStyle
|
||||
strikeout: root.strikeoutStyle
|
||||
enabled: !styleNameComboBox.styleSet
|
||||
}
|
||||
|
||||
PropertyLabel { text: qsTr("Alignment") }
|
||||
|
||||
SecondColumnLayout {
|
||||
AligmentHorizontalButtons { id: horizontalAlignmentButtons }
|
||||
|
||||
Spacer {
|
||||
visible: root.showVerticalAlignment
|
||||
implicitWidth: StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.controlLabelWidth
|
||||
+ StudioTheme.Values.controlGap
|
||||
+ StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
- horizontalAlignmentButtons.implicitWidth
|
||||
}
|
||||
|
||||
AligmentVerticalButtons { visible: root.showVerticalAlignment }
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Letter space")
|
||||
tooltip: qsTr("Letter spacing for the font.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: getBackendValue("letterSpacing")
|
||||
decimals: 2
|
||||
minimumValue: -500
|
||||
maximumValue: 500
|
||||
stepSize: 0.1
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Word space")
|
||||
tooltip: qsTr("Word spacing for the font.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: getBackendValue("wordSpacing")
|
||||
decimals: 2
|
||||
minimumValue: -500
|
||||
maximumValue: 500
|
||||
stepSize: 0.1
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: root.showLineHeight
|
||||
text: qsTr("Line height")
|
||||
tooltip: qsTr("Line height for the text.")
|
||||
disabledState: !lineHeightSpinBox.enabled
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: root.showLineHeight
|
||||
|
||||
SpinBox {
|
||||
id: lineHeightSpinBox
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
backendValue: (backendValues.lineHeight === undefined) ? dummyBackendValue
|
||||
: backendValues.lineHeight
|
||||
decimals: 2
|
||||
minimumValue: 0
|
||||
maximumValue: 500
|
||||
stepSize: 0.1
|
||||
enabled: backendValue.isAvailable
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: richTextDialogLoader
|
||||
|
||||
visible: false
|
||||
active: visible
|
||||
|
||||
function show() {
|
||||
richTextDialogLoader.visible = true
|
||||
}
|
||||
|
||||
sourceComponent: Item {
|
||||
id: richTextEditorParent
|
||||
|
||||
Component.onCompleted: {
|
||||
richTextEditor.showWidget()
|
||||
richTextEditor.richText = backendValues.text.value
|
||||
}
|
||||
|
||||
RichTextEditor {
|
||||
id: richTextEditor
|
||||
|
||||
onRejected: {
|
||||
hideWidget()
|
||||
richTextDialogLoader.visible = false
|
||||
}
|
||||
onAccepted: {
|
||||
backendValues.text.value = richTextEditor.richText
|
||||
backendValues.textFormat.setEnumeration("Text", "RichText")
|
||||
hideWidget()
|
||||
richTextDialogLoader.visible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,446 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Item {
|
||||
id: colorButton
|
||||
width: 64
|
||||
height: 64
|
||||
|
||||
property color color
|
||||
property real alpha: 1
|
||||
|
||||
property real hue: 0
|
||||
property real saturation: 0
|
||||
property real lightness: 0
|
||||
|
||||
property int sliderMargins: 6
|
||||
|
||||
property bool block: false
|
||||
|
||||
signal updateColor
|
||||
signal rightMouseButtonClicked
|
||||
|
||||
onAlphaChanged: invalidateColor();
|
||||
onSaturationChanged: invalidateColor();
|
||||
onLightnessChanged: invalidateColor();
|
||||
onHueChanged: invalidateColor();
|
||||
|
||||
onColorChanged: {
|
||||
var myAlpha = color.a
|
||||
rgbToHsl(color);
|
||||
|
||||
colorButton.alpha = myAlpha
|
||||
}
|
||||
|
||||
function invalidateColor() {
|
||||
if (block)
|
||||
return;
|
||||
|
||||
block = true
|
||||
|
||||
colorButton.color = Qt.hsla(hue, saturation, lightness, alpha);
|
||||
|
||||
if (saturation > 0.0 && lightness > 0.0) {
|
||||
hueSlider.value = hue
|
||||
hueSlider2.value = hue
|
||||
}
|
||||
|
||||
if (lightness > 0.0)
|
||||
saturationSlider.value = saturation
|
||||
else
|
||||
saturation = saturationSlider.value
|
||||
|
||||
lightnessSlider.value = lightness
|
||||
alphaSlider.value = alpha
|
||||
redSlider.value = (color.r * 255)
|
||||
greenSlider.value = (color.g * 255)
|
||||
blueSlider.value = (color.b * 255)
|
||||
|
||||
block = false
|
||||
}
|
||||
|
||||
function rgbToHsl(color) {
|
||||
|
||||
var r = color.r
|
||||
var g = color.g
|
||||
var b = color.b
|
||||
|
||||
var max = Math.max(r, g, b), min = Math.min(r, g, b)
|
||||
var h, s, l = (max + min) / 2
|
||||
|
||||
if (max === min) {
|
||||
h = 0
|
||||
s = 0
|
||||
} else {
|
||||
var d = max - min;
|
||||
s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
|
||||
switch (max) {
|
||||
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
|
||||
case g: h = (b - r) / d + 2; break;
|
||||
case b: h = (r - g) / d + 4; break;
|
||||
}
|
||||
|
||||
h /= 6
|
||||
}
|
||||
|
||||
block = true
|
||||
|
||||
if (s > 0)
|
||||
colorButton.hue = h
|
||||
|
||||
colorButton.saturation = s
|
||||
colorButton.lightness = l
|
||||
|
||||
block = false
|
||||
invalidateColor()
|
||||
}
|
||||
|
||||
Image {
|
||||
id: surround
|
||||
x: 2
|
||||
y: 2
|
||||
width: height
|
||||
height: parent.height - 4
|
||||
|
||||
source: "images/checkers.png"
|
||||
fillMode: Image.Tile
|
||||
|
||||
// note we smoothscale the shader from a smaller version to improve performance
|
||||
Canvas {
|
||||
id: hubeBox
|
||||
opacity: colorButton.alpha
|
||||
anchors.fill: parent
|
||||
property real hue: colorButton.hue
|
||||
onHueChanged: requestPaint()
|
||||
|
||||
onPaint: {
|
||||
var ctx = hubeBox.getContext('2d')
|
||||
ctx.save()
|
||||
ctx.clearRect(0, 0, hubeBox.width, hubeBox.height);
|
||||
|
||||
for (var row = 0; row < hubeBox.height; row++){
|
||||
var gradient = ctx.createLinearGradient(0, 0, hubeBox.width,0);
|
||||
var l = Math.abs(row - hubeBox.height) / hubeBox.height
|
||||
|
||||
gradient.addColorStop(0, Qt.hsla(hubeBox.hue, 0, l, 1));
|
||||
gradient.addColorStop(1, Qt.hsla(hubeBox.hue, 1, l, 1));
|
||||
|
||||
ctx.fillStyle = gradient;
|
||||
ctx.fillRect(0, row, hubeBox.width, 1);
|
||||
}
|
||||
ctx.restore()
|
||||
}
|
||||
}
|
||||
|
||||
Canvas {
|
||||
id: canvas
|
||||
|
||||
opacity: 0.8
|
||||
anchors.fill: parent
|
||||
antialiasing: true
|
||||
|
||||
property real cavnasSaturation: colorButton.saturation
|
||||
property real canvasLightness: colorButton.lightness
|
||||
|
||||
onCavnasSaturationChanged: requestPaint();
|
||||
onCanvasLightnessChanged: requestPaint();
|
||||
|
||||
property color strokeStyle: "lightGray"
|
||||
|
||||
onPaint: {
|
||||
var ctx = canvas.getContext('2d')
|
||||
|
||||
ctx.save()
|
||||
|
||||
context.clearRect(0, 0, canvas.width, canvas.height);
|
||||
|
||||
var yy = canvas.height -colorButton.lightness * canvas.height
|
||||
var xx = colorButton.saturation * canvas.width
|
||||
|
||||
ctx.strokeStyle = canvas.strokeStyle
|
||||
ctx.lineWidth = 1
|
||||
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(0, yy)
|
||||
ctx.lineTo(canvas.width, yy)
|
||||
ctx.stroke()
|
||||
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(xx, 0)
|
||||
ctx.lineTo(xx, canvas.height)
|
||||
ctx.stroke()
|
||||
|
||||
ctx.restore()
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mapMouseArea
|
||||
anchors.fill: parent
|
||||
preventStealing: true
|
||||
onPositionChanged: {
|
||||
if (pressed && mouse.buttons === Qt.LeftButton) {
|
||||
var xx = Math.max(0, Math.min(mouse.x, parent.width))
|
||||
var yy = Math.max(0, Math.min(mouse.y, parent.height))
|
||||
|
||||
colorButton.lightness = 1.0 - yy / parent.height;
|
||||
colorButton.saturation = xx / parent.width;
|
||||
}
|
||||
}
|
||||
onPressed: {
|
||||
if (mouse.button === Qt.LeftButton)
|
||||
positionChanged(mouse)
|
||||
}
|
||||
onReleased: {
|
||||
if (mouse.button === Qt.LeftButton)
|
||||
colorButton.updateColor()
|
||||
}
|
||||
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
|
||||
onClicked: {
|
||||
if (mouse.button === Qt.RightButton)
|
||||
colorButton.rightMouseButtonClicked()
|
||||
}
|
||||
}
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
anchors.margins: -StudioTheme.Values.border
|
||||
color: "#00000000"
|
||||
border.color: StudioTheme.Values.themeControlOutline
|
||||
border.width: StudioTheme.Values.border
|
||||
}
|
||||
}
|
||||
|
||||
HueSlider {
|
||||
id: hueSlider
|
||||
anchors.left: surround.right
|
||||
anchors.margins: 6
|
||||
y: 4
|
||||
height: parent.height - 8
|
||||
onValueChanged: {
|
||||
if (colorButton.hue !== value)
|
||||
colorButton.hue = value
|
||||
}
|
||||
onClicked: colorButton.updateColor()
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.left: hueSlider.right
|
||||
anchors.margins: colorButton.sliderMargins
|
||||
spacing: StudioTheme.Values.sectionRowSpacing
|
||||
|
||||
Row {
|
||||
spacing: 20
|
||||
|
||||
Column {
|
||||
spacing: StudioTheme.Values.sectionRowSpacing
|
||||
|
||||
Row {
|
||||
z: 3
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "R"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: redSlider
|
||||
width: 68
|
||||
|
||||
stepSize: 1
|
||||
minimumValue: 0
|
||||
maximumValue: 255
|
||||
decimals: 0
|
||||
|
||||
onValueModified: {
|
||||
var tmp = redSlider.value / 255.0
|
||||
if (colorButton.color.r !== tmp && !colorButton.block) {
|
||||
colorButton.color.r = tmp
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
z: 2
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "G"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: greenSlider
|
||||
width: 68
|
||||
|
||||
stepSize: 1
|
||||
minimumValue: 0
|
||||
maximumValue: 255
|
||||
decimals: 0
|
||||
|
||||
onValueModified: {
|
||||
var tmp = greenSlider.value / 255.0
|
||||
if (colorButton.color.g !== tmp && !colorButton.block) {
|
||||
colorButton.color.g = tmp
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
z: 1
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "B"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: blueSlider
|
||||
width: 68
|
||||
|
||||
stepSize: 1
|
||||
minimumValue: 0
|
||||
maximumValue: 255
|
||||
decimals: 0
|
||||
|
||||
onValueModified: {
|
||||
var tmp = blueSlider.value / 255.0
|
||||
if (colorButton.color.b !== tmp && !colorButton.block) {
|
||||
colorButton.color.b = tmp
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
spacing: StudioTheme.Values.sectionRowSpacing
|
||||
|
||||
Row {
|
||||
z: 3
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "H"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: hueSlider2
|
||||
width: 64
|
||||
onValueModified: {
|
||||
if (colorButton.hue !== hueSlider2.value && !colorButton.block) {
|
||||
colorButton.hue = hueSlider2.value
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
z: 2
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "S"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: saturationSlider
|
||||
width: 64
|
||||
onValueModified: {
|
||||
if (colorButton.saturation !== saturationSlider.value && !colorButton.block) {
|
||||
colorButton.saturation = saturationSlider.value
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
z: 1
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "L"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: lightnessSlider
|
||||
width: 64
|
||||
onValueModified: {
|
||||
if (colorButton.lightness !== lightnessSlider.value && !colorButton.block) {
|
||||
colorButton.lightness = lightnessSlider.value
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
z: 0
|
||||
spacing: 1
|
||||
Label {
|
||||
text: "A"
|
||||
width: 16
|
||||
color: StudioTheme.Values.themeTextColor
|
||||
elide: Text.ElideRight
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
DoubleSpinBox {
|
||||
id: alphaSlider
|
||||
sliderIndicatorVisible: true
|
||||
width: 169
|
||||
onValueModified: {
|
||||
if (colorButton.alpha !== alphaSlider.value && !colorButton.block) {
|
||||
colorButton.alpha = alphaSlider.value
|
||||
colorButton.updateColor()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,87 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.1
|
||||
import StudioTheme 1.0 as StudioTheme
|
||||
|
||||
Item {
|
||||
id: root
|
||||
property bool checked: false
|
||||
property alias buttonColor: checkBox.color
|
||||
width: StudioTheme.Values.height
|
||||
height: StudioTheme.Values.height
|
||||
|
||||
signal rightMouseButtonClicked
|
||||
|
||||
Rectangle {
|
||||
id: backgroundBox
|
||||
width: StudioTheme.Values.height
|
||||
height: StudioTheme.Values.height
|
||||
anchors.right: parent.right
|
||||
|
||||
color: "white"
|
||||
border.color: "white"
|
||||
border.width: StudioTheme.Values.border
|
||||
|
||||
Rectangle {
|
||||
id: checkBox
|
||||
width: StudioTheme.Values.height - 2 * StudioTheme.Values.border
|
||||
height: StudioTheme.Values.height - 2 * StudioTheme.Values.border
|
||||
anchors.centerIn: parent
|
||||
|
||||
border.color: "black"
|
||||
border.width: StudioTheme.Values.border
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: arrowImage
|
||||
width: 8
|
||||
height: 4
|
||||
source: "image://icons/down-arrow"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: backgroundBox.left
|
||||
anchors.rightMargin: 4
|
||||
opacity: colorToolTip.containsMouse ? 1 : 0.8
|
||||
rotation: root.checked ? 0.0 : 270.0
|
||||
}
|
||||
|
||||
ToolTipArea {
|
||||
id: colorToolTip
|
||||
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
|
||||
onClicked: {
|
||||
if (mouse.button === Qt.RightButton)
|
||||
root.rightMouseButtonClicked()
|
||||
else
|
||||
root.checked = !root.checked
|
||||
}
|
||||
hoverEnabled: true
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: -arrowImage.width
|
||||
tooltip: qsTr("Toggle color picker view.")
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user