QmlDesigner: Add metainfo and specifics of various modules
- Saferenderer - Charts - Graphs - VirtualKeyboard - Quick3DPhysics Various specifics were copied from modules into QDS with minimal updates to fix most glaring errors/layout issues. It is not guaranteed they are all up to date and fully functional. Charts and Graphs cannot be enabled for project storage yet, as their .qmltypes files contain duplicate entries. When they are fixed in Qt version QDS targets, these modules can be enabled for project storage. Fixes: QDS-15020 Change-Id: Id3e3c76c3940f2ee05359b9274c82791b8d95c38 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
After Width: | Height: | Size: 341 B |
After Width: | Height: | Size: 447 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/bars3d-icon.png
Normal file
After Width: | Height: | Size: 261 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/bars3d-icon16.png
Normal file
After Width: | Height: | Size: 203 B |
After Width: | Height: | Size: 136 B |
After Width: | Height: | Size: 162 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/boxshape.png
Normal file
After Width: | Height: | Size: 473 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/boxshape16.png
Normal file
After Width: | Height: | Size: 354 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/boxshape@2x.png
Normal file
After Width: | Height: | Size: 657 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/capsuleshape.png
Normal file
After Width: | Height: | Size: 404 B |
After Width: | Height: | Size: 280 B |
After Width: | Height: | Size: 877 B |
After Width: | Height: | Size: 428 B |
After Width: | Height: | Size: 280 B |
After Width: | Height: | Size: 831 B |
After Width: | Height: | Size: 244 B |
After Width: | Height: | Size: 745 B |
After Width: | Height: | Size: 332 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 414 B |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 778 B |
After Width: | Height: | Size: 456 B |
After Width: | Height: | Size: 240 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 136 B |
After Width: | Height: | Size: 151 B |
After Width: | Height: | Size: 152 B |
After Width: | Height: | Size: 258 B |
After Width: | Height: | Size: 440 B |
After Width: | Height: | Size: 151 B |
After Width: | Height: | Size: 559 B |
After Width: | Height: | Size: 357 B |
After Width: | Height: | Size: 1.1 KiB |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/physicsworld.png
Normal file
After Width: | Height: | Size: 441 B |
After Width: | Height: | Size: 316 B |
After Width: | Height: | Size: 846 B |
After Width: | Height: | Size: 346 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/planeshape.png
Normal file
After Width: | Height: | Size: 473 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/planeshape16.png
Normal file
After Width: | Height: | Size: 299 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/planeshape@2x.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 244 B |
After Width: | Height: | Size: 190 B |
After Width: | Height: | Size: 182 B |
After Width: | Height: | Size: 345 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/sphereshape.png
Normal file
After Width: | Height: | Size: 567 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/sphereshape16.png
Normal file
After Width: | Height: | Size: 336 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 303 B |
After Width: | Height: | Size: 415 B |
After Width: | Height: | Size: 154 B |
After Width: | Height: | Size: 375 B |
After Width: | Height: | Size: 298 B |
After Width: | Height: | Size: 690 B |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 215 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 396 B |
After Width: | Height: | Size: 1.3 KiB |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/triggerbody.png
Normal file
After Width: | Height: | Size: 594 B |
BIN
share/qtcreator/qmldesigner/itemLibrary/images/triggerbody16.png
Normal file
After Width: | Height: | Size: 463 B |
After Width: | Height: | Size: 1.0 KiB |
166
share/qtcreator/qmldesigner/itemLibrary/qtcharts.metainfo
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
MetaInfo {
|
||||||
|
Type {
|
||||||
|
name: "QtCharts.ChartView"
|
||||||
|
icon: "images/chartview-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Area"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/areaseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/AreaSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Bar"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/barseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/BarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "BoxPlot"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/boxplotseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/BoxPlotSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "H.Bar"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/horizontalbarseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/HorizontalBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "H.PercentBar"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/horizontalpercentbarseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/HorizontalPercentBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "H.StackedBar"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/horizontalstackedbarseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/HorizontalStackedBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Line"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/lineseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/LineSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Percent"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/percentbarseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PercentBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Pie"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/pieseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PieSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Scatter"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/scatterseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/ScatterSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Spline"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/splineseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/SplineSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "StackedBar"
|
||||||
|
category: "Qt Charts - ChartView"
|
||||||
|
libraryIcon: "images/stackedbarseries-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/StackedBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Area"
|
||||||
|
category: "Qt Charts - PolarChartView"
|
||||||
|
libraryIcon: "images/areaseries-polar-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PolarAreaSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Line"
|
||||||
|
category: "Qt Charts - PolarChartView"
|
||||||
|
libraryIcon: "images/lineseries-polar-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PolarLineSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Scatter"
|
||||||
|
category: "Qt Charts - PolarChartView"
|
||||||
|
libraryIcon: "images/scatterseries-polar-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PolarScatterSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Spline"
|
||||||
|
category: "Qt Charts - PolarChartView"
|
||||||
|
libraryIcon: "images/splineseries-polar-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "QtCharts"
|
||||||
|
|
||||||
|
QmlSource { source: "source/PolarSplineSeries.qml" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
111
share/qtcreator/qmldesigner/itemLibrary/qtgraphs.metainfo
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
MetaInfo {
|
||||||
|
Type {
|
||||||
|
name: "QtGraphs.Bars3D"
|
||||||
|
icon: "images/bars3d-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Bars3D"
|
||||||
|
category: "3D Graphs"
|
||||||
|
libraryIcon: "images/bars3d-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Bars3D.qml" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtGraphs.Scatter3D"
|
||||||
|
icon: "images/scatter3d-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Scatter3D"
|
||||||
|
category: "3D Graphs"
|
||||||
|
libraryIcon: "images/scatter3d-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Scatter3D.qml" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtGraphs.Surface3D"
|
||||||
|
icon: "images/surface3d-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Surface3D"
|
||||||
|
category: "3D Graphs"
|
||||||
|
libraryIcon: "images/surface3d-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Surface3D.qml" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtGraphs.GraphsView"
|
||||||
|
icon: "images/chartview-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Area"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/areaseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DAreaSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Bar"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/barseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DBarSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Line"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/lineseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DLineSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Pie"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/pieseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DPieSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Scatter"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/scatterseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DScatterSeries.qml" }
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Spline"
|
||||||
|
category: "2D Graphs"
|
||||||
|
libraryIcon: "images/splineseries-icon.png"
|
||||||
|
version: "1.0"
|
||||||
|
requiredImport: "QtGraphs"
|
||||||
|
|
||||||
|
QmlSource { source: "source/Graphs2DSplineSeries.qml" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,47 @@
|
|||||||
|
MetaInfo {
|
||||||
|
Type {
|
||||||
|
name: "Qt.SafeRenderer.SafePicture"
|
||||||
|
icon: "images/picture-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "SafePicture"
|
||||||
|
category: "Qt Safe Renderer"
|
||||||
|
libraryIcon: "images/picture-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "Qt.SafeRenderer"
|
||||||
|
|
||||||
|
Property { name: "width"; type: "int"; value: 64; }
|
||||||
|
Property { name: "height"; type: "int"; value: 64; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Type {
|
||||||
|
name: "Qt.SafeRenderer.SafeText"
|
||||||
|
icon: "images/text-16px.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "SafeText"
|
||||||
|
category: "Qt Safe Renderer"
|
||||||
|
libraryIcon: "images/text-24px.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "Qt.SafeRenderer"
|
||||||
|
|
||||||
|
Property { name: "width"; type: "int"; value: 128; }
|
||||||
|
Property { name: "height"; type: "int"; value: 64; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Type {
|
||||||
|
name: "Qt.SafeRenderer.SafeImage"
|
||||||
|
icon: "images/image-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "SafeImage"
|
||||||
|
category: "Qt Safe Renderer"
|
||||||
|
libraryIcon: "images/image-icon.png"
|
||||||
|
version: "2.0"
|
||||||
|
requiredImport: "Qt.SafeRenderer"
|
||||||
|
|
||||||
|
Property { name: "width"; type: "int"; value: 64; }
|
||||||
|
Property { name: "height"; type: "int"; value: 64; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,35 @@
|
|||||||
|
MetaInfo {
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.VirtualKeyboard.InputPanel"
|
||||||
|
icon: "images/text-input-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Input Panel"
|
||||||
|
category: "Virtual Keyboard"
|
||||||
|
libraryIcon: "images/text-input-icon.png"
|
||||||
|
version: "6.0"
|
||||||
|
requiredImport: "QtQuick.VirtualKeyboard"
|
||||||
|
|
||||||
|
Property { name: "width"; type: "int"; value: 200; }
|
||||||
|
Property { name: "height"; type: "int"; value: 200; }
|
||||||
|
toolTip: qsTr("Provides the virtual keyboard UI.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick.VirtualKeyboard.HandwritingInputPanel"
|
||||||
|
icon: "images/text-input-icon16.png"
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Handwriting Input Panel"
|
||||||
|
category: "Virtual Keyboard"
|
||||||
|
libraryIcon: "images/text-input-icon.png"
|
||||||
|
version: "6.0"
|
||||||
|
requiredImport: "QtQuick.VirtualKeyboard"
|
||||||
|
|
||||||
|
Property { name: "width"; type: "int"; value: 200; }
|
||||||
|
Property { name: "height"; type: "int"; value: 200; }
|
||||||
|
toolTip: qsTr("Provides a handwriting panel add-on for the virtual keyboard UI.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
261
share/qtcreator/qmldesigner/itemLibrary/quick3d_physics.metainfo
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
MetaInfo {
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.PhysicsWorld"
|
||||||
|
icon: "images/physicsworld16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Physics World"
|
||||||
|
category: "Components"
|
||||||
|
libraryIcon: "images/physicsworld.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.TriggerBody"
|
||||||
|
icon: "images/triggerbody16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Trigger Body"
|
||||||
|
category: "Collision Bodies"
|
||||||
|
libraryIcon: "images/triggerbody.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.StaticRigidBody"
|
||||||
|
icon: "images/staticrigidbody16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Static Rigid Body"
|
||||||
|
category: "Collision Bodies"
|
||||||
|
libraryIcon: "images/staticrigidbody.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.DynamicRigidBody"
|
||||||
|
icon: "images/dynamicrigidbody16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Dynamic Rigid Body"
|
||||||
|
category: "Collision Bodies"
|
||||||
|
libraryIcon: "images/dynamicrigidbody.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.PhysicsMaterial"
|
||||||
|
icon: "images/physicsmaterial16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: false
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Physics Material"
|
||||||
|
category: "Components"
|
||||||
|
libraryIcon: "images/physicsmaterial.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.BoxShape"
|
||||||
|
icon: "images/boxshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Box Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/boxshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.CapsuleShape"
|
||||||
|
icon: "images/capsuleshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Capsule Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/capsuleshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.ConvexMeshShape"
|
||||||
|
icon: "images/convexmeshshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Convex Mesh Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/convexmeshshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.HeightFieldShape"
|
||||||
|
icon: "images/heightfieldshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Height Field Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/heightfieldshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.PlaneShape"
|
||||||
|
icon: "images/planeshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Plane Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/planeshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.SphereShape"
|
||||||
|
icon: "images/sphereshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Sphere Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/sphereshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.TriangleMeshShape"
|
||||||
|
icon: "images/trianglemeshshape16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Triangle Mesh Shape"
|
||||||
|
category: "Collision Shapes"
|
||||||
|
libraryIcon: "images/trianglemeshshape.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type {
|
||||||
|
name: "QtQuick3D.Physics.CharacterController"
|
||||||
|
icon: "images/charactercontroller16.png"
|
||||||
|
|
||||||
|
Hints {
|
||||||
|
visibleInNavigator: true
|
||||||
|
canBeDroppedInNavigator: true
|
||||||
|
canBeDroppedInFormEditor: false
|
||||||
|
canBeDroppedInView3D: true
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemLibraryEntry {
|
||||||
|
name: "Character Controller"
|
||||||
|
category: "Collision Bodies"
|
||||||
|
libraryIcon: "images/charactercontroller.png"
|
||||||
|
version: "6.5"
|
||||||
|
requiredImport: "QtQuick3D.Physics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,20 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
AreaSeries {
|
||||||
|
name: "AreaSeries"
|
||||||
|
upperSeries: LineSeries {
|
||||||
|
XYPoint { x: 0; y: 1.5 }
|
||||||
|
XYPoint { x: 1; y: 3 }
|
||||||
|
XYPoint { x: 3; y: 4.3 }
|
||||||
|
XYPoint { x: 6; y: 1.1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
17
share/qtcreator/qmldesigner/itemLibrary/source/BarSeries.qml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
BarSeries {
|
||||||
|
name: "BarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
28
share/qtcreator/qmldesigner/itemLibrary/source/Bars3D.qml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick3D
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
Bars3D {
|
||||||
|
id: bars3d
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
Bar3DSeries {
|
||||||
|
id: bars3dSeries
|
||||||
|
ItemModelBarDataProxy {
|
||||||
|
id: barsDataProxy
|
||||||
|
itemModel: ListModel {
|
||||||
|
ListElement{ row: "row 1"; column: "column 1"; value: "1"; }
|
||||||
|
ListElement{ row: "row 1"; column: "column 2"; value: "2"; }
|
||||||
|
ListElement{ row: "row 1"; column: "column 3"; value: "3"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
rowRole: "row"
|
||||||
|
columnRole: "column"
|
||||||
|
valueRole: "value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
BoxPlotSeries {
|
||||||
|
name: "BoxPlotSeries"
|
||||||
|
BoxSet { label: "Set1"; values: [3, 4, 5.1, 6.2, 8.5] }
|
||||||
|
BoxSet { label: "Set2"; values: [5, 6, 7.5, 8.6, 11.8] }
|
||||||
|
BoxSet { label: "Set3"; values: [3.2, 5, 5.7, 8, 9.2] }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
axisX: valueAxisX
|
||||||
|
axisY: valueAxisY
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisX
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisY
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
AreaSeries {
|
||||||
|
name: "AreaSeries"
|
||||||
|
upperSeries: lineSeries
|
||||||
|
|
||||||
|
LineSeries {
|
||||||
|
id: lineSeries
|
||||||
|
XYPoint {
|
||||||
|
x: 0
|
||||||
|
y: 1.5
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 1
|
||||||
|
y: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 6
|
||||||
|
y: 6.3
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 10
|
||||||
|
y: 3.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
axisX: barCategoryAxis
|
||||||
|
axisY: valueAxis
|
||||||
|
|
||||||
|
BarCategoryAxis {
|
||||||
|
id: barCategoryAxis
|
||||||
|
categories: ["2023", "2024", "2025"]
|
||||||
|
}
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxis
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
BarSeries {
|
||||||
|
id: barSeries
|
||||||
|
BarSet { id: set1; label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { id: set2; label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { id: set3; label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
axisX: valueAxisX
|
||||||
|
axisY: valueAxisY
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisX
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisY
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
LineSeries {
|
||||||
|
id: lineSeries
|
||||||
|
XYPoint {
|
||||||
|
x: 0
|
||||||
|
y: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 3
|
||||||
|
y: 1.2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 7
|
||||||
|
y: 3.3
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 10
|
||||||
|
y: 2.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
PieSeries {
|
||||||
|
id: pieSeries
|
||||||
|
PieSlice { label: "Slice1"; value: 13.5 }
|
||||||
|
PieSlice { label: "Slice2"; value: 10.9 }
|
||||||
|
PieSlice { label: "Slice3"; value: 8.6 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
axisX: valueAxisX
|
||||||
|
axisY: valueAxisY
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisX
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisY
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
ScatterSeries {
|
||||||
|
id: lineSeries
|
||||||
|
XYPoint {
|
||||||
|
x: 0
|
||||||
|
y: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 3
|
||||||
|
y: 1.2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 7
|
||||||
|
y: 3.3
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 10
|
||||||
|
y: 2.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
GraphsView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
axisX: valueAxisX
|
||||||
|
axisY: valueAxisY
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisX
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
ValueAxis {
|
||||||
|
id: valueAxisY
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
SplineSeries {
|
||||||
|
id: lineSeries
|
||||||
|
XYPoint {
|
||||||
|
x: 0
|
||||||
|
y: 2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 3
|
||||||
|
y: 1.2
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 7
|
||||||
|
y: 3.3
|
||||||
|
}
|
||||||
|
|
||||||
|
XYPoint {
|
||||||
|
x: 10
|
||||||
|
y: 2.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
HorizontalBarSeries {
|
||||||
|
name: "HorizontalBarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
HorizontalPercentBarSeries {
|
||||||
|
name: "HorizontalPercentBarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
HorizontalStackedBarSeries {
|
||||||
|
name: "HorizontalStackedBarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,18 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
LineSeries {
|
||||||
|
name: "LineSeries"
|
||||||
|
XYPoint { x: 0; y: 2 }
|
||||||
|
XYPoint { x: 1; y: 1.2 }
|
||||||
|
XYPoint { x: 2; y: 3.3 }
|
||||||
|
XYPoint { x: 5; y: 2.1 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
PercentBarSeries {
|
||||||
|
name: "PercentBarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
17
share/qtcreator/qmldesigner/itemLibrary/source/PieSeries.qml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
PieSeries {
|
||||||
|
name: "PieSeries"
|
||||||
|
PieSlice { label: "Slice1"; value: 13.5 }
|
||||||
|
PieSlice { label: "Slice2"; value: 10.9 }
|
||||||
|
PieSlice { label: "Slice3"; value: 8.6 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,48 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
PolarChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
legend.visible: false
|
||||||
|
|
||||||
|
ValueAxis {
|
||||||
|
id: axis1
|
||||||
|
tickCount: 9
|
||||||
|
}
|
||||||
|
ValueAxis {
|
||||||
|
id: axis2
|
||||||
|
}
|
||||||
|
LineSeries {
|
||||||
|
id: lowerLine
|
||||||
|
axisAngular: axis1
|
||||||
|
axisRadial: axis2
|
||||||
|
|
||||||
|
XYPoint { x: 1; y: 5 }
|
||||||
|
XYPoint { x: 2; y: 10 }
|
||||||
|
XYPoint { x: 3; y: 12 }
|
||||||
|
XYPoint { x: 4; y: 17 }
|
||||||
|
XYPoint { x: 5; y: 20 }
|
||||||
|
}
|
||||||
|
LineSeries {
|
||||||
|
id: upperLine
|
||||||
|
axisAngular: axis1
|
||||||
|
axisRadial: axis2
|
||||||
|
|
||||||
|
XYPoint { x: 1; y: 5 }
|
||||||
|
XYPoint { x: 2; y: 14 }
|
||||||
|
XYPoint { x: 3; y: 20 }
|
||||||
|
XYPoint { x: 4; y: 32 }
|
||||||
|
XYPoint { x: 5; y: 35 }
|
||||||
|
}
|
||||||
|
AreaSeries {
|
||||||
|
name: "AreaSeries"
|
||||||
|
axisAngular: axis1
|
||||||
|
axisRadial: axis2
|
||||||
|
lowerSeries: lowerLine
|
||||||
|
upperSeries: upperLine
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,27 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
PolarChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
LineSeries {
|
||||||
|
name: "LineSeries"
|
||||||
|
axisRadial: CategoryAxis {
|
||||||
|
min: 0
|
||||||
|
max: 20
|
||||||
|
}
|
||||||
|
axisAngular: ValueAxis {
|
||||||
|
tickCount: 9
|
||||||
|
}
|
||||||
|
XYPoint { x: 0; y: 4.3 }
|
||||||
|
XYPoint { x: 2; y: 4.7 }
|
||||||
|
XYPoint { x: 4; y: 5.2 }
|
||||||
|
XYPoint { x: 6; y: 6.1 }
|
||||||
|
XYPoint { x: 8; y: 12.9 }
|
||||||
|
XYPoint { x: 9; y: 19.2 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,26 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
PolarChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
ScatterSeries {
|
||||||
|
name: "ScatterSeries"
|
||||||
|
axisRadial: CategoryAxis {
|
||||||
|
min: 0
|
||||||
|
max: 20
|
||||||
|
}
|
||||||
|
axisAngular: ValueAxis {
|
||||||
|
tickCount: 9
|
||||||
|
}
|
||||||
|
XYPoint { x: 0; y: 4.3 }
|
||||||
|
XYPoint { x: 2; y: 4.7 }
|
||||||
|
XYPoint { x: 4; y: 5.2 }
|
||||||
|
XYPoint { x: 8; y: 12.9 }
|
||||||
|
XYPoint { x: 9; y: 19.2 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,27 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
PolarChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
SplineSeries {
|
||||||
|
name: "SplineSeries"
|
||||||
|
axisRadial: CategoryAxis {
|
||||||
|
min: 0
|
||||||
|
max: 20
|
||||||
|
}
|
||||||
|
axisAngular: ValueAxis {
|
||||||
|
tickCount: 9
|
||||||
|
}
|
||||||
|
XYPoint { x: 0; y: 4.3 }
|
||||||
|
XYPoint { x: 2; y: 4.7 }
|
||||||
|
XYPoint { x: 4; y: 5.2 }
|
||||||
|
XYPoint { x: 6; y: 6.1 }
|
||||||
|
XYPoint { x: 8; y: 12.9 }
|
||||||
|
XYPoint { x: 9; y: 19.2 }
|
||||||
|
}
|
||||||
|
}
|
28
share/qtcreator/qmldesigner/itemLibrary/source/Scatter3D.qml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick3D
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
Scatter3D {
|
||||||
|
id: scatter3d
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
Scatter3DSeries {
|
||||||
|
id: scatter3dSeries
|
||||||
|
ItemModelScatterDataProxy {
|
||||||
|
id: scatterDataProxy
|
||||||
|
itemModel: ListModel {
|
||||||
|
ListElement{ x: "1"; y: "2"; z: "3"; }
|
||||||
|
ListElement{ x: "2"; y: "3"; z: "4"; }
|
||||||
|
ListElement{ x: "3"; y: "4"; z: "1"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
xPosRole: "x"
|
||||||
|
yPosRole: "y"
|
||||||
|
zPosRole: "z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,18 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
ScatterSeries {
|
||||||
|
name: "ScatterSeries"
|
||||||
|
XYPoint { x: 1; y: 1 }
|
||||||
|
XYPoint { x: 2; y: 4 }
|
||||||
|
XYPoint { x: 4; y: 2 }
|
||||||
|
XYPoint { x: 5; y: 5 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,18 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
SplineSeries {
|
||||||
|
name: "SplineSeries"
|
||||||
|
XYPoint { x: 0; y: 1 }
|
||||||
|
XYPoint { x: 3; y: 4.3 }
|
||||||
|
XYPoint { x: 5; y: 3.1 }
|
||||||
|
XYPoint { x: 8; y: 5.8 }
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,17 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtCharts
|
||||||
|
|
||||||
|
ChartView {
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
|
||||||
|
StackedBarSeries {
|
||||||
|
name: "StackedBarSeries"
|
||||||
|
BarSet { label: "Set1"; values: [2, 2, 3] }
|
||||||
|
BarSet { label: "Set2"; values: [5, 1, 2] }
|
||||||
|
BarSet { label: "Set3"; values: [3, 5, 8] }
|
||||||
|
}
|
||||||
|
}
|
28
share/qtcreator/qmldesigner/itemLibrary/source/Surface3D.qml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick3D
|
||||||
|
import QtGraphs
|
||||||
|
|
||||||
|
Surface3D {
|
||||||
|
id: surface3d
|
||||||
|
width: 300
|
||||||
|
height: 300
|
||||||
|
Surface3DSeries {
|
||||||
|
id: surface3dSeries
|
||||||
|
ItemModelSurfaceDataProxy {
|
||||||
|
id: surfaceDataProxy
|
||||||
|
itemModel: ListModel {
|
||||||
|
ListElement{ row: "1"; column: "1"; y: "1"; }
|
||||||
|
ListElement{ row: "1"; column: "2"; y: "2"; }
|
||||||
|
ListElement{ row: "2"; column: "1"; y: "3"; }
|
||||||
|
ListElement{ row: "2"; column: "2"; y: "4"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
rowRole: "row"
|
||||||
|
columnRole: "column"
|
||||||
|
yPosRole: "y"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,156 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuickDesignerTheme
|
||||||
|
import HelperWidgets
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: itemPane
|
||||||
|
width: 320
|
||||||
|
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
|
||||||
|
|
||||||
|
onWidthChanged: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
Component.onCompleted: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
|
||||||
|
ComponentSection {}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
caption: qsTr("Safe Image")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel { text: qsTr("Position") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.x
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: -0xffff
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel { text: "Y" }
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Size") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.width
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The width of the object
|
||||||
|
text: qsTr("W", "width")
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||||
|
|
||||||
|
SpinBox {
|
||||||
|
id: heightSpinBox
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.height
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The height of the object
|
||||||
|
text: qsTr("H", "height")
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Source") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
UrlChooser {
|
||||||
|
backendValue: backendValues.source
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
PropertyLabel { text: qsTr("fillColor") }
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.fillColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Opacity") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
sliderIndicatorVisible: true
|
||||||
|
backendValue: backendValues.opacity
|
||||||
|
decimals: 2
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 1
|
||||||
|
hasSlider: true
|
||||||
|
stepSize: 0.1
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,163 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuickDesignerTheme
|
||||||
|
import HelperWidgets
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: itemPane
|
||||||
|
width: 320
|
||||||
|
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
|
||||||
|
|
||||||
|
onWidthChanged: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
Component.onCompleted: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
|
||||||
|
ComponentSection {}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
caption: qsTr("Safe Picture")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel { text: qsTr("Position") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.x
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: -0xffff
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel { text: "Y" }
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Size") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.width
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The width of the object
|
||||||
|
text: qsTr("W", "width")
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||||
|
|
||||||
|
SpinBox {
|
||||||
|
id: heightSpinBox
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.height
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The height of the object
|
||||||
|
text: qsTr("H", "height")
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Source") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
UrlChooser {
|
||||||
|
backendValue: backendValues.source
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Color") }
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.color
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("fillColor") }
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.fillColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
PropertyLabel { text: qsTr("Opacity") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
sliderIndicatorVisible: true
|
||||||
|
backendValue: backendValues.opacity
|
||||||
|
decimals: 2
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 1
|
||||||
|
hasSlider: true
|
||||||
|
stepSize: 0.1
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,269 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuickDesignerTheme
|
||||||
|
import HelperWidgets
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: itemPane
|
||||||
|
width: 320
|
||||||
|
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
|
||||||
|
|
||||||
|
onWidthChanged: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
Component.onCompleted: StudioTheme.Values.responsiveResize(itemPane.width)
|
||||||
|
|
||||||
|
ComponentSection {}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
caption: qsTr("Safe Text")
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel { text: qsTr("Position") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.x
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: -0xffff
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel { text: "Y" }
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Size") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.width
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The width of the object
|
||||||
|
text: qsTr("W", "width")
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||||
|
|
||||||
|
SpinBox {
|
||||||
|
id: heightSpinBox
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.height
|
||||||
|
maximumValue: 0xffff
|
||||||
|
minimumValue: 1
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel {
|
||||||
|
//: The height of the object
|
||||||
|
text: qsTr("H", "height")
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Text") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
LineEdit {
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
width: implicitWidth
|
||||||
|
backendValue: backendValues.text
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Color") }
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.color
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
PropertyLabel { text: qsTr("fillColor") }
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.fillColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
PropertyLabel { text: qsTr("Opacity") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
sliderIndicatorVisible: true
|
||||||
|
backendValue: backendValues.opacity
|
||||||
|
decimals: 2
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 1
|
||||||
|
hasSlider: true
|
||||||
|
stepSize: 0.1
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Font") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
FontComboBox {
|
||||||
|
id: fontComboBox
|
||||||
|
property string familyName: backendValue.value
|
||||||
|
backendValue: backendValues.font_family
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
width: implicitWidth
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Size") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.font_pixelSize
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 400
|
||||||
|
decimals: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||||
|
|
||||||
|
ControlLabel { text: "px" }
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Emphasis") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
BoolButtonRowButton {
|
||||||
|
id: boldButton
|
||||||
|
buttonIcon: StudioTheme.Constants.fontStyleBold
|
||||||
|
backendValue: backendValues.font_bold
|
||||||
|
}
|
||||||
|
|
||||||
|
Spacer {
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
- (boldButton.implicitWidth + italicButton.implicitWidth)
|
||||||
|
}
|
||||||
|
|
||||||
|
BoolButtonRowButton {
|
||||||
|
id: italicButton
|
||||||
|
buttonIcon: StudioTheme.Constants.fontStyleItalic
|
||||||
|
backendValue: backendValues.font_italic
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Alignment H") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
AlignmentHorizontalButtons {
|
||||||
|
scope: "SafeText"
|
||||||
|
}
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Alignment V") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
AlignmentVerticalButtons {
|
||||||
|
scope: "SafeText"
|
||||||
|
}
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Wrap mode") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
ComboBox {
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
width: implicitWidth
|
||||||
|
backendValue: backendValues.wrapMode
|
||||||
|
scope: "SafeText"
|
||||||
|
model: ["NoWrap", "WordWrap", "WrapAnywhere", "Wrap"]
|
||||||
|
enabled: backendValue.isAvailable
|
||||||
|
}
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel { text: qsTr("Dynamic") }
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
text: backendValue.valueToString
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
backendValue: backendValues.runtimeEditable
|
||||||
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,123 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import HelperWidgets
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Section {
|
||||||
|
caption: qsTr("Title")
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Title")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
LineEdit {
|
||||||
|
backendValue: backendValues.title
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
ExpandingSpacer {}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Color")
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.titleColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Background")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Color")
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.backgroundColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Roundness")
|
||||||
|
tooltip: qsTr("Diameter of the rounding circle at the corners")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.backgroundRoundness
|
||||||
|
minimumValue: 0.1
|
||||||
|
maximumValue: 100.0
|
||||||
|
stepSize: 0.1
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Drop Shadow")
|
||||||
|
tooltip: qsTr("Enable border drop shadow")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
text: backendValues.dropShadowEnabled.valueToString
|
||||||
|
backendValue: backendValues.dropShadowEnabled
|
||||||
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Plot Area")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Color")
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.plotAreaColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Localization")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Localize Numbers")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
text: backendValues.localizeNumbers.valueToString
|
||||||
|
backendValue: backendValues.localizeNumbers
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,276 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import HelperWidgets
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
import QtQuick.Controls as Controls
|
||||||
|
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Bars")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Uniform Scaling")
|
||||||
|
tooltip: qsTr("Proportionally scale multiple series")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.multiSeriesUniform
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Thickness")
|
||||||
|
tooltip: qsTr("Thickness ratio between X and Z dimension")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.barThickness
|
||||||
|
minimumValue: 0.01
|
||||||
|
maximumValue: 100.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Spacing")
|
||||||
|
tooltip: qsTr("Bar spacing in the X and Z dimensions")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.barSpacing_width
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 10.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
- StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: qsTr("Col")
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth * 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.barSpacing_height
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 10.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
- StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: qsTr("Row")
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth * 2
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Relative Spacing")
|
||||||
|
tooltip: qsTr("Set bar spacing relative to thickness")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.barSpacingRelative
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Series Margin")
|
||||||
|
tooltip: qsTr("Margin between series columns in X and Z dimensions")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.barSeriesMargin_width
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 1.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
- StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: qsTr("Col")
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth * 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.barSeriesMargin_height
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 1.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
- StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: qsTr("Row")
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth * 2
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Floor Level")
|
||||||
|
tooltip: qsTr("Floor level in Y-axis data coordinates")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.floorLevel
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 999999
|
||||||
|
stepSize: 0.1
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
- StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Selection Mode")
|
||||||
|
tooltip: qsTr("Bar selection mode")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
id: selectionLayout
|
||||||
|
property bool isInModel: backendValue.isInModel;
|
||||||
|
property bool isInSubState: backendValue.isInSubState;
|
||||||
|
property bool selectionChangedFlag: selectionChanged
|
||||||
|
property variant backendValue: backendValues.selectionMode
|
||||||
|
property variant valueFromBackend: backendValue.value
|
||||||
|
property string enumScope: "Graphs3D.SelectionFlag"
|
||||||
|
property string enumSeparator: " | "
|
||||||
|
property int checkedCount: 0
|
||||||
|
property bool item: false
|
||||||
|
property bool row: false
|
||||||
|
property bool column: false
|
||||||
|
property bool slice: false
|
||||||
|
property bool multi: false
|
||||||
|
|
||||||
|
function checkValue(checkedVariable, variableText, expressionBase) {
|
||||||
|
var expressionStr = expressionBase
|
||||||
|
if (checkedVariable) {
|
||||||
|
if (expressionStr !== "") {
|
||||||
|
expressionStr += enumSeparator
|
||||||
|
}
|
||||||
|
expressionStr += enumScope
|
||||||
|
expressionStr += "."
|
||||||
|
expressionStr += variableText
|
||||||
|
checkedCount++
|
||||||
|
}
|
||||||
|
return expressionStr
|
||||||
|
}
|
||||||
|
|
||||||
|
function composeSelectionMode() {
|
||||||
|
var expressionStr = ""
|
||||||
|
checkedCount = 0
|
||||||
|
expressionStr = checkValue(item, "Item", expressionStr)
|
||||||
|
expressionStr = checkValue(row, "Row", expressionStr)
|
||||||
|
expressionStr = checkValue(column, "Column", expressionStr)
|
||||||
|
expressionStr = checkValue(slice, "Slice", expressionStr)
|
||||||
|
expressionStr = checkValue(multi, "MultiSeries", expressionStr)
|
||||||
|
|
||||||
|
if (checkedCount === 0)
|
||||||
|
backendValue.expression = enumScope + ".None"
|
||||||
|
else
|
||||||
|
backendValue.expression = expressionStr
|
||||||
|
}
|
||||||
|
|
||||||
|
function evaluate() {
|
||||||
|
if (backendValue.value === undefined)
|
||||||
|
return
|
||||||
|
|
||||||
|
item = (backendValue.expression.indexOf("Item") !== -1)
|
||||||
|
row = (backendValue.expression.indexOf("Row") !== -1)
|
||||||
|
column = (backendValue.expression.indexOf("Column") !== -1)
|
||||||
|
slice = (backendValue.expression.indexOf("Slice") !== -1)
|
||||||
|
multi = (backendValue.expression.indexOf("MultiSeries") !== -1)
|
||||||
|
|
||||||
|
itemBox.checked = item
|
||||||
|
rowBox.checked = row
|
||||||
|
columnBox.checked = column
|
||||||
|
sliceBox.checked = slice
|
||||||
|
multiSeriesBox.checked = multi
|
||||||
|
}
|
||||||
|
|
||||||
|
onSelectionChangedFlagChanged: evaluate()
|
||||||
|
|
||||||
|
onIsInModelChanged: evaluate()
|
||||||
|
|
||||||
|
onIsInSubStateChanged: evaluate()
|
||||||
|
|
||||||
|
onBackendValueChanged: evaluate()
|
||||||
|
|
||||||
|
onValueFromBackendChanged: evaluate()
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Controls.CheckBox {
|
||||||
|
id: itemBox
|
||||||
|
text: "Item"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
selectionLayout.item = checked
|
||||||
|
selectionLayout.composeSelectionMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Controls.CheckBox {
|
||||||
|
id: rowBox
|
||||||
|
text: "Row"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
selectionLayout.row = checked
|
||||||
|
selectionLayout.composeSelectionMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Controls.CheckBox {
|
||||||
|
id: columnBox
|
||||||
|
text: "Column"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
selectionLayout.column = checked
|
||||||
|
selectionLayout.composeSelectionMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Controls.CheckBox {
|
||||||
|
id: sliceBox
|
||||||
|
text: "Slice"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
selectionLayout.slice = checked
|
||||||
|
selectionLayout.composeSelectionMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Controls.CheckBox {
|
||||||
|
id: multiSeriesBox
|
||||||
|
text: "MultiSeries"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onClicked: {
|
||||||
|
selectionLayout.multi = checked
|
||||||
|
selectionLayout.composeSelectionMode()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GraphsSection {}
|
||||||
|
|
||||||
|
GraphsCameraSection {}
|
||||||
|
}
|
@@ -0,0 +1,189 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import HelperWidgets
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Camera")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Preset")
|
||||||
|
tooltip: qsTr("Camera preset")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
ComboBox {
|
||||||
|
backendValue: backendValues.cameraPreset
|
||||||
|
model: ["NoPreset", "FrontLow", "Front", "FrontHigh", "LeftLow",
|
||||||
|
"Left", "LeftHigh", "RightLow", "Right", "RightHigh", "BehindLow",
|
||||||
|
"Behind", "BehindHigh", "IsometricLeft", "IsometricLeftHigh",
|
||||||
|
"IsometricRight", "IsometricRightHigh", "DirectlyAbove",
|
||||||
|
"DirectlyAboveCW45", "DirectlyAboveCCW45", "FrontBelow",
|
||||||
|
"LeftBelow", "RightBelow", "BehindBelow", "DirectlyBelow"]
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
scope: "Graphs3D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Target")
|
||||||
|
tooltip: qsTr("Camera target position")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraTargetPosition_x
|
||||||
|
minimumValue: -1.0
|
||||||
|
maximumValue: 1.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: "X"
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraTargetPosition_y
|
||||||
|
minimumValue: -1.0
|
||||||
|
maximumValue: 1.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text:"Y"
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraTargetPosition_z
|
||||||
|
minimumValue: -1.0
|
||||||
|
maximumValue: 1.0
|
||||||
|
stepSize: 0.01
|
||||||
|
decimals: 2
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
}
|
||||||
|
ControlLabel {
|
||||||
|
text: "Z"
|
||||||
|
width: StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Zoom")
|
||||||
|
tooltip: qsTr("Camera zoom level")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraZoomLevel
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 500
|
||||||
|
stepSize: 1
|
||||||
|
decimals: 0
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Min Zoom")
|
||||||
|
tooltip: qsTr("Camera minimum zoom")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.minCameraZoomLevel
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 500
|
||||||
|
stepSize: 1
|
||||||
|
decimals: 0
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Max Zoom")
|
||||||
|
tooltip: qsTr("Camera maximum zoom")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.maxCameraZoomLevel
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 500
|
||||||
|
stepSize: 1
|
||||||
|
decimals: 0
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("X Rotation")
|
||||||
|
tooltip: qsTr("Camera X rotation")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraXRotation
|
||||||
|
minimumValue: -180
|
||||||
|
maximumValue: 180
|
||||||
|
stepSize: 1
|
||||||
|
decimals: 0
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Wrap X")
|
||||||
|
tooltip: qsTr("Wrap camera X rotation")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.wrapCameraXRotation
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Y Rotation")
|
||||||
|
tooltip: qsTr("Camera Y rotation")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.cameraYRotation
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 90
|
||||||
|
stepSize: 1
|
||||||
|
decimals: 0
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Wrap Y")
|
||||||
|
tooltip: qsTr("Wrap camera Y rotation")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.wrapCameraYRotation
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Orthographic")
|
||||||
|
tooltip: qsTr("Use orthographic camera")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.orthoProjection
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,124 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import HelperWidgets
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Graph")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Render Mode")
|
||||||
|
tooltip: qsTr("Rendering mode")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
ComboBox {
|
||||||
|
backendValue: backendValues.renderingMode
|
||||||
|
model: ["Indirect", "DirectToBackground"]
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
scope: "Graphs3D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Shadow Quality")
|
||||||
|
tooltip: qsTr("Quality and style of the shadows")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
ComboBox {
|
||||||
|
backendValue: backendValues.shadowQuality
|
||||||
|
model: ["None", "Low", "Medium",
|
||||||
|
"High", "SoftLow", "SoftMedium",
|
||||||
|
"SoftHigh"]
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
scope: "Graphs3D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Optimization")
|
||||||
|
tooltip: qsTr("Optimization hint")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
ComboBox {
|
||||||
|
backendValue: backendValues.optimizationHint
|
||||||
|
model: ["Default", "Legacy"]
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
scope: "Graphs3D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("MSAA")
|
||||||
|
tooltip: qsTr("Multisample anti-aliasing sample count")
|
||||||
|
}
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.msaaSamples
|
||||||
|
minimumValue: 0
|
||||||
|
maximumValue: 8
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Aspect Ratio")
|
||||||
|
tooltip: qsTr("Horizontal to vertical aspect ratio")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.aspectRatio
|
||||||
|
minimumValue: 0.1
|
||||||
|
maximumValue: 10.0
|
||||||
|
stepSize: 0.1
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Horizontal AR")
|
||||||
|
tooltip: qsTr("Horizontal aspect ratio")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.horizontalAspectRatio
|
||||||
|
minimumValue: 0.1
|
||||||
|
maximumValue: 10.0
|
||||||
|
stepSize: 0.1
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Margin")
|
||||||
|
tooltip: qsTr("Graph background margin")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.margin
|
||||||
|
minimumValue: -1.0
|
||||||
|
maximumValue: 100.0
|
||||||
|
stepSize: 0.1
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Measure FPS")
|
||||||
|
tooltip: qsTr("Measure rendering speed as Frames Per Second")
|
||||||
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
|
CheckBox {
|
||||||
|
backendValue: backendValues.measureFps
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@@ -0,0 +1,103 @@
|
|||||||
|
// Copyright (C) 2025 The Qt Company Ltd.
|
||||||
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import HelperWidgets
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import StudioTheme as StudioTheme
|
||||||
|
|
||||||
|
Column {
|
||||||
|
width: parent.width
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Background")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Color")
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorEditor {
|
||||||
|
backendValue: backendValues.backgroundColor
|
||||||
|
supportGradient: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
width: parent.width
|
||||||
|
caption: qsTr("Margins")
|
||||||
|
|
||||||
|
SectionLayout {
|
||||||
|
rows: 4
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Top")
|
||||||
|
tooltip: qsTr("The amount of empty space on the top of the graph.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.marginTop
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 9999.0
|
||||||
|
stepSize: 1.0
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Bottom")
|
||||||
|
tooltip: qsTr("The amount of empty space on the bottom of the graph.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.marginBottom
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 9999.0
|
||||||
|
stepSize: 1.0
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Left")
|
||||||
|
tooltip: qsTr("The amount of empty space on the left of the graph.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.marginLeft
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 9999.0
|
||||||
|
stepSize: 1.0
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyLabel {
|
||||||
|
text: qsTr("Right")
|
||||||
|
tooltip: qsTr("The amount of empty space on the right of the graph.")
|
||||||
|
}
|
||||||
|
|
||||||
|
SecondColumnLayout {
|
||||||
|
SpinBox {
|
||||||
|
backendValue: backendValues.marginRight
|
||||||
|
minimumValue: 0.0
|
||||||
|
maximumValue: 9999.0
|
||||||
|
stepSize: 1.0
|
||||||
|
decimals: 1
|
||||||
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||||
|
+ StudioTheme.Values.actionIndicatorWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|