forked from qt-creator/qt-creator
QmlDesigner: Controls 1 cleanup
* Replace ScrollView Controls 1 with ScrollView Controls 2 * Replace TabView with TabBar and StackLayout * Remove unused styles * Replace Controls 1 imports * Remove print statement in FontSection * Fix layout width by correcting CheckBox width * Remove TabView from QtObjectPane Task-number: QDS-2454 Task-number: QDS-2455 Task-number: QDS-2456 Change-Id: I913d326afb012375dd5b804171cb8cd67681514c Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Henning Gründl
parent
245c9c760f
commit
58ea14aea7
@@ -23,9 +23,8 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.15
|
||||||
import QtQuick.Controls.Styles 1.0
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
import HelperWidgets 2.0
|
import HelperWidgets 2.0
|
||||||
|
|
||||||
@@ -76,8 +75,6 @@ Item {
|
|||||||
id: mouseRegion
|
id: mouseRegion
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
tooltip: itemName
|
tooltip: itemName
|
||||||
|
|
||||||
|
|
||||||
onPressed: {
|
onPressed: {
|
||||||
rootView.startDragAndDrop(mouseRegion, itemLibraryEntry)
|
rootView.startDragAndDrop(mouseRegion, itemLibraryEntry)
|
||||||
}
|
}
|
||||||
|
@@ -23,15 +23,11 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Layouts 1.15
|
||||||
import QtQuick.Controls.Styles 1.0
|
|
||||||
import "../common"
|
|
||||||
|
|
||||||
import QtQuick.Layouts 1.0
|
|
||||||
import HelperWidgets 2.0
|
|
||||||
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
/* The view displaying the item grid.
|
/* The view displaying the item grid.
|
||||||
|
|
||||||
@@ -65,9 +61,6 @@ ScrollView {
|
|||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: styleConstants
|
id: styleConstants
|
||||||
readonly property color backgroundColor: Theme.qmlDesignerBackgroundColorDarkAlternate()
|
|
||||||
readonly property color lighterBackgroundColor: Theme.color(Theme.FancyToolBarSeparatorColor)
|
|
||||||
|
|
||||||
property int textWidth: 58
|
property int textWidth: 58
|
||||||
property int textHeight: Theme.smallFontPixelSize() * 2
|
property int textHeight: Theme.smallFontPixelSize() * 2
|
||||||
|
|
||||||
@@ -81,24 +74,13 @@ ScrollView {
|
|||||||
2 * cellVerticalMargin + cellVerticalSpacing
|
2 * cellVerticalMargin + cellVerticalSpacing
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: background
|
|
||||||
anchors.fill: parent
|
|
||||||
color: styleConstants.backgroundColor
|
|
||||||
}
|
|
||||||
|
|
||||||
style: DesignerScrollViewStyle {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Flickable {
|
|
||||||
contentHeight: column.height
|
|
||||||
Column {
|
Column {
|
||||||
id: column
|
id: column
|
||||||
Repeater {
|
Repeater {
|
||||||
model: itemLibraryModel // to be set in Qml context
|
model: itemLibraryModel // to be set in Qml context
|
||||||
delegate: Section {
|
delegate: Section {
|
||||||
width: itemsView.viewport.width
|
width: itemsView.width -
|
||||||
|
(itemsView.verticalScrollBarVisible ? StudioTheme.Values.scrollBarThickness : 0)
|
||||||
caption: sectionName // to be set by model
|
caption: sectionName // to be set by model
|
||||||
visible: sectionVisible
|
visible: sectionVisible
|
||||||
topPadding: 2
|
topPadding: 2
|
||||||
@@ -124,5 +106,5 @@ ScrollView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ Section {
|
|||||||
caption: qsTr("Advanced")
|
caption: qsTr("Advanced")
|
||||||
|
|
||||||
SectionLayout {
|
SectionLayout {
|
||||||
rows: 4
|
columns: 2
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Origin")
|
text: qsTr("Origin")
|
||||||
@@ -171,7 +171,6 @@ Section {
|
|||||||
backendValue: backendValues.focus
|
backendValue: backendValues.focus
|
||||||
text: backendValues.focus.valueToString
|
text: backendValues.focus.valueToString
|
||||||
enabled: backendValues.focus.isAvailable
|
enabled: backendValues.focus.isAvailable
|
||||||
implicitWidth: 180
|
|
||||||
}
|
}
|
||||||
ExpandingSpacer {
|
ExpandingSpacer {
|
||||||
}
|
}
|
||||||
@@ -187,7 +186,6 @@ Section {
|
|||||||
backendValue: backendValues.activeFocusOnTab
|
backendValue: backendValues.activeFocusOnTab
|
||||||
text: backendValues.activeFocusOnTab.valueToString
|
text: backendValues.activeFocusOnTab.valueToString
|
||||||
enabled: backendValues.activeFocusOnTab.isAvailable
|
enabled: backendValues.activeFocusOnTab.isAvailable
|
||||||
implicitWidth: 180
|
|
||||||
}
|
}
|
||||||
ExpandingSpacer {
|
ExpandingSpacer {
|
||||||
}
|
}
|
||||||
|
@@ -32,10 +32,10 @@ import StudioTheme 1.0 as StudioTheme
|
|||||||
Section {
|
Section {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
caption: qsTr("Align")
|
caption: qsTr("Align")
|
||||||
|
|
||||||
ColumnLayout {
|
SectionLayout {
|
||||||
width: parent.width
|
|
||||||
enabled: alignDistribute.multiSelection &&
|
enabled: alignDistribute.multiSelection &&
|
||||||
!alignDistribute.selectionHasAnchors &&
|
!alignDistribute.selectionHasAnchors &&
|
||||||
alignDistribute.selectionExclusivlyItems &&
|
alignDistribute.selectionExclusivlyItems &&
|
||||||
@@ -49,8 +49,11 @@ Section {
|
|||||||
Label {
|
Label {
|
||||||
text: qsTr("Align objects")
|
text: qsTr("Align objects")
|
||||||
width: 120
|
width: 120
|
||||||
|
Layout.columnSpan: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
Layout.columnSpan: 2
|
||||||
Row {
|
Row {
|
||||||
spacing: -StudioTheme.Values.border
|
spacing: -StudioTheme.Values.border
|
||||||
AbstractButton {
|
AbstractButton {
|
||||||
@@ -105,8 +108,11 @@ Section {
|
|||||||
Label {
|
Label {
|
||||||
text: qsTr("Distribute objects")
|
text: qsTr("Distribute objects")
|
||||||
width: 120
|
width: 120
|
||||||
|
Layout.columnSpan: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
Layout.columnSpan: 2
|
||||||
Row {
|
Row {
|
||||||
spacing: -StudioTheme.Values.border
|
spacing: -StudioTheme.Values.border
|
||||||
AbstractButton {
|
AbstractButton {
|
||||||
@@ -161,8 +167,11 @@ Section {
|
|||||||
Label {
|
Label {
|
||||||
text: qsTr("Distribute spacing")
|
text: qsTr("Distribute spacing")
|
||||||
width: 120
|
width: 120
|
||||||
|
Layout.columnSpan: 2
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
Layout.columnSpan: 2
|
||||||
Row {
|
Row {
|
||||||
spacing: -StudioTheme.Values.border
|
spacing: -StudioTheme.Values.border
|
||||||
AbstractButton {
|
AbstractButton {
|
||||||
@@ -242,9 +251,6 @@ Section {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SectionLayout {
|
|
||||||
columns: 2
|
|
||||||
|
|
||||||
ItemFilterModel {
|
ItemFilterModel {
|
||||||
id: itemFilterModel
|
id: itemFilterModel
|
||||||
modelNodeBackendProperty: modelNodeBackend
|
modelNodeBackendProperty: modelNodeBackend
|
||||||
@@ -254,6 +260,7 @@ Section {
|
|||||||
Label {
|
Label {
|
||||||
text: qsTr("Align to")
|
text: qsTr("Align to")
|
||||||
}
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: alignToComboBox
|
id: alignToComboBox
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
@@ -267,9 +274,14 @@ Section {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Key object")
|
text: qsTr("Key object")
|
||||||
}
|
}
|
||||||
|
SecondColumnLayout {
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: keyObjectComboBox
|
id: keyObjectComboBox
|
||||||
enabled: alignToComboBox.currentIndex === 2
|
enabled: alignToComboBox.currentIndex === 2
|
||||||
@@ -285,11 +297,15 @@ Section {
|
|||||||
lastSelectedItem = "" // TODO
|
lastSelectedItem = "" // TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ExpandingSpacer {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SectionLayout {
|
SectionLayout {
|
||||||
columns: 1
|
columns: 1
|
||||||
Layout.topMargin: 30
|
Layout.topMargin: 30
|
||||||
|
Layout.columnSpan: 2
|
||||||
visible: alignDistribute.multiSelection &&
|
visible: alignDistribute.multiSelection &&
|
||||||
(alignDistribute.selectionHasAnchors ||
|
(alignDistribute.selectionHasAnchors ||
|
||||||
!alignDistribute.selectionExclusivlyItems ||
|
!alignDistribute.selectionExclusivlyItems ||
|
||||||
|
@@ -23,9 +23,9 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.15
|
||||||
import HelperWidgets 2.0
|
import HelperWidgets 2.0
|
||||||
import QtQuick.Layouts 1.0
|
import QtQuick.Layouts 1.15
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
|
||||||
import StudioControls 1.0 as StudioControls
|
import StudioControls 1.0 as StudioControls
|
||||||
@@ -34,11 +34,9 @@ import StudioTheme 1.0 as StudioTheme
|
|||||||
RowLayout {
|
RowLayout {
|
||||||
id: anchorRow
|
id: anchorRow
|
||||||
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
opacity: enabled ? 1 : 0.5
|
opacity: enabled ? 1 : 0.5
|
||||||
|
|
||||||
property alias iconSource: icon.source
|
property alias iconSource: iconLabel.icon
|
||||||
|
|
||||||
property variant anchorMargin
|
property variant anchorMargin
|
||||||
|
|
||||||
@@ -64,8 +62,10 @@ RowLayout {
|
|||||||
readonly property color __defaultTextColor: StudioTheme.Values.themeTextColor
|
readonly property color __defaultTextColor: StudioTheme.Values.themeTextColor
|
||||||
|
|
||||||
IconLabel {
|
IconLabel {
|
||||||
id: icon
|
id: iconLabel
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
|
Layout.topMargin: 4
|
||||||
|
Layout.leftMargin: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
|
@@ -23,10 +23,11 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.15
|
||||||
import HelperWidgets 2.0
|
import QtQuick.Controls 2.15
|
||||||
import QtQuick.Layouts 1.0
|
import QtQuick.Layouts 1.15
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
import StudioControls 1.0 as StudioControls
|
import StudioControls 1.0 as StudioControls
|
||||||
import StudioTheme 1.0 as StudioTheme
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
@@ -35,14 +36,15 @@ Rectangle {
|
|||||||
width: 320
|
width: 320
|
||||||
height: 400
|
height: 400
|
||||||
color: Theme.qmlDesignerBackgroundColorDarkAlternate()
|
color: Theme.qmlDesignerBackgroundColorDarkAlternate()
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: forceActiveFocus()
|
onClicked: forceActiveFocus()
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
|
clip: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
|
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
y: -1
|
y: -1
|
||||||
@@ -57,7 +59,6 @@ Rectangle {
|
|||||||
SectionLayout {
|
SectionLayout {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Type")
|
text: qsTr("Type")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SecondColumnLayout {
|
SecondColumnLayout {
|
||||||
@@ -280,7 +281,6 @@ Rectangle {
|
|||||||
Item {
|
Item {
|
||||||
width: 10
|
width: 10
|
||||||
height: 10
|
height: 10
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckBox {
|
CheckBox {
|
||||||
@@ -319,22 +319,34 @@ Rectangle {
|
|||||||
width: 4
|
width: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
TabView {
|
StudioControls.TabBar {
|
||||||
|
id: tabBar
|
||||||
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
frameVisible: false
|
|
||||||
|
|
||||||
id: tabView
|
StudioControls.TabButton {
|
||||||
|
text: backendValues.className.value
|
||||||
|
}
|
||||||
|
StudioControls.TabButton {
|
||||||
|
text: qsTr("Layout")
|
||||||
|
}
|
||||||
|
StudioControls.TabButton {
|
||||||
|
text: qsTr("Advanced")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StackLayout {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
currentIndex: tabBar.currentIndex
|
||||||
|
|
||||||
|
property int currentHeight: children[currentIndex].implicitHeight
|
||||||
|
property int extraHeight: 40
|
||||||
|
|
||||||
height: currentHeight + extraHeight
|
height: currentHeight + extraHeight
|
||||||
|
|
||||||
property int currentHeight: getTab(currentIndex).item.implicitHeight
|
Column {
|
||||||
property int extraHeight: 40
|
|
||||||
|
|
||||||
Tab {
|
|
||||||
title: backendValues.className.value
|
|
||||||
|
|
||||||
component: Column {
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
@@ -364,11 +376,8 @@ Rectangle {
|
|||||||
property int loaderHeight: specificsOne.item.height + tabView.extraHeight
|
property int loaderHeight: specificsOne.item.height + tabView.extraHeight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Tab {
|
Column {
|
||||||
title: qsTr("Layout")
|
|
||||||
component: Column {
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
@@ -388,12 +397,8 @@ Rectangle {
|
|||||||
visible: !anchorBackend.isInLayout
|
visible: !anchorBackend.isInLayout
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Tab {
|
Column {
|
||||||
anchors.fill: parent
|
|
||||||
title: qsTr("Advanced")
|
|
||||||
component: Column {
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
@@ -405,5 +410,4 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -50,8 +50,8 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
visible: anchorBackend.topAnchored;
|
visible: anchorBackend.topAnchored
|
||||||
iconSource: "image://icons/anchor-top"
|
iconSource: StudioTheme.Constants.anchorTop
|
||||||
anchorMargin: backendValues.anchors_topMargin
|
anchorMargin: backendValues.anchors_topMargin
|
||||||
targetName: anchorBackend.topTarget
|
targetName: anchorBackend.topTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
@@ -73,8 +73,8 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
visible: anchorBackend.bottomAnchored;
|
visible: anchorBackend.bottomAnchored
|
||||||
iconSource: "image://icons/anchor-bottom"
|
iconSource: StudioTheme.Constants.anchorBottom
|
||||||
anchorMargin: backendValues.anchors_bottomMargin
|
anchorMargin: backendValues.anchors_bottomMargin
|
||||||
targetName: anchorBackend.bottomTarget
|
targetName: anchorBackend.bottomTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
@@ -97,8 +97,8 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
visible: anchorBackend.leftAnchored;
|
visible: anchorBackend.leftAnchored
|
||||||
iconSource: "image://icons/anchor-left"
|
iconSource: StudioTheme.Constants.anchorLeft
|
||||||
anchorMargin: backendValues.anchors_leftMargin
|
anchorMargin: backendValues.anchors_leftMargin
|
||||||
targetName: anchorBackend.leftTarget
|
targetName: anchorBackend.leftTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
@@ -120,8 +120,8 @@ Section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
visible: anchorBackend.rightAnchored;
|
visible: anchorBackend.rightAnchored
|
||||||
iconSource: "image://icons/anchor-right"
|
iconSource: StudioTheme.Constants.anchorRight
|
||||||
anchorMargin: backendValues.anchors_rightMargin
|
anchorMargin: backendValues.anchors_rightMargin
|
||||||
targetName: anchorBackend.rightTarget
|
targetName: anchorBackend.rightTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
@@ -145,8 +145,8 @@ Section {
|
|||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
showAlternativeTargets: false
|
showAlternativeTargets: false
|
||||||
visible: anchorBackend.horizontalCentered;
|
visible: anchorBackend.horizontalCentered
|
||||||
iconSource: "image://icons/anchor-horizontal"
|
iconSource: StudioTheme.Constants.centerHorizontal
|
||||||
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
anchorMargin: backendValues.anchors_horizontalCenterOffset
|
||||||
targetName: anchorBackend.horizontalTarget
|
targetName: anchorBackend.horizontalTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
@@ -158,8 +158,8 @@ Section {
|
|||||||
|
|
||||||
AnchorRow {
|
AnchorRow {
|
||||||
showAlternativeTargets: false
|
showAlternativeTargets: false
|
||||||
visible: anchorBackend.verticalCentered;
|
visible: anchorBackend.verticalCentered
|
||||||
iconSource: "image://icons/anchor-vertical"
|
iconSource: StudioTheme.Constants.centerVertical
|
||||||
anchorMargin: backendValues.anchors_verticalCenterOffset
|
anchorMargin: backendValues.anchors_verticalCenterOffset
|
||||||
targetName: anchorBackend.verticalTarget
|
targetName: anchorBackend.verticalTarget
|
||||||
onTargetChanged: {
|
onTargetChanged: {
|
||||||
|
@@ -23,10 +23,10 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.15
|
||||||
import HelperWidgets 2.0
|
|
||||||
import QtQuick.Layouts 1.0
|
import QtQuick.Layouts 1.0
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: itemPane
|
id: itemPane
|
||||||
@@ -43,6 +43,7 @@ Rectangle {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
|
id: rootColumn
|
||||||
y: -1
|
y: -1
|
||||||
width: itemPane.width
|
width: itemPane.width
|
||||||
Section {
|
Section {
|
||||||
@@ -54,7 +55,6 @@ Rectangle {
|
|||||||
SectionLayout {
|
SectionLayout {
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Type")
|
text: qsTr("Type")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SecondColumnLayout {
|
SecondColumnLayout {
|
||||||
@@ -148,36 +148,14 @@ Rectangle {
|
|||||||
width: 4
|
width: 4
|
||||||
}
|
}
|
||||||
|
|
||||||
TabView {
|
Column {
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
frameVisible: false
|
|
||||||
|
|
||||||
id: tabView
|
|
||||||
height: Math.max(layoutSectionHeight, specficsHeight)
|
|
||||||
|
|
||||||
property int layoutSectionHeight: 400
|
|
||||||
property int specficsOneHeight: 0
|
|
||||||
property int specficsTwoHeight: 0
|
|
||||||
|
|
||||||
property int specficsHeight: Math.max(specficsOneHeight, specficsTwoHeight)
|
|
||||||
|
|
||||||
property int extraHeight: 40
|
|
||||||
|
|
||||||
Tab {
|
|
||||||
id: tab
|
|
||||||
title: backendValues.className.value
|
|
||||||
|
|
||||||
component: Column {
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
Loader {
|
Loader {
|
||||||
|
id: specificsTwo
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
visible: theSource !== ""
|
visible: theSource !== ""
|
||||||
|
|
||||||
id: specificsTwo;
|
|
||||||
sourceComponent: specificQmlComponent
|
sourceComponent: specificQmlComponent
|
||||||
|
|
||||||
property string theSource: specificQmlData
|
property string theSource: specificQmlData
|
||||||
@@ -186,30 +164,13 @@ Rectangle {
|
|||||||
active = false
|
active = false
|
||||||
active = true
|
active = true
|
||||||
}
|
}
|
||||||
|
|
||||||
property int loaderHeight: specificsTwo.item.height + tabView.extraHeight
|
|
||||||
onLoaderHeightChanged: tabView.specficsTwoHeight = loaderHeight
|
|
||||||
|
|
||||||
onLoaded: {
|
|
||||||
tabView.specficsTwoHeight = loaderHeight
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
|
id: specificsOne
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
source: specificsUrl
|
||||||
id: specificsOne;
|
|
||||||
source: specificsUrl;
|
|
||||||
|
|
||||||
property int loaderHeight: specificsOne.item.height + tabView.extraHeight
|
|
||||||
onLoaderHeightChanged: tabView.specficsHeight = loaderHeight
|
|
||||||
|
|
||||||
onLoaded: {
|
|
||||||
tabView.specficsOneHeight = loaderHeight
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -156,7 +156,7 @@ StudioControls.ButtonRow {
|
|||||||
buttonIcon: StudioTheme.Constants.centerVertical
|
buttonIcon: StudioTheme.Constants.centerVertical
|
||||||
tooltip: qsTr("Anchor item vertically.")
|
tooltip: qsTr("Anchor item vertically.")
|
||||||
|
|
||||||
property bool verticalCentered: anchorBackend.verticalCentered;
|
property bool verticalCentered: anchorBackend.verticalCentered
|
||||||
onVerticalCenteredChanged: {
|
onVerticalCenteredChanged: {
|
||||||
checked = verticalCentered
|
checked = verticalCentered
|
||||||
}
|
}
|
||||||
@@ -179,7 +179,7 @@ StudioControls.ButtonRow {
|
|||||||
buttonIcon: StudioTheme.Constants.centerHorizontal
|
buttonIcon: StudioTheme.Constants.centerHorizontal
|
||||||
tooltip: qsTr("Anchor item horizontally.")
|
tooltip: qsTr("Anchor item horizontally.")
|
||||||
|
|
||||||
property bool horizontalCentered: anchorBackend.horizontalCentered;
|
property bool horizontalCentered: anchorBackend.horizontalCentered
|
||||||
onHorizontalCenteredChanged: {
|
onHorizontalCenteredChanged: {
|
||||||
checked = horizontalCentered
|
checked = horizontalCentered
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Creator.
|
** This file is part of Qt Creator.
|
||||||
@@ -23,48 +23,79 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1 as Controls
|
import QtQuick.Templates 2.15 as T
|
||||||
import QtQuick.Controls.Styles 1.1
|
import StudioTheme 1.0 as StudioTheme
|
||||||
import "Constants.js" as Constants
|
|
||||||
|
T.AbstractButton {
|
||||||
|
id: myButton
|
||||||
|
|
||||||
|
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
||||||
|
implicitContentWidth + leftPadding + rightPadding)
|
||||||
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||||
|
implicitContentHeight + topPadding + bottomPadding)
|
||||||
|
|
||||||
Controls.Button {
|
|
||||||
property color borderColor: "#222"
|
|
||||||
property color highlightColor: "orange"
|
|
||||||
property color textColor: "#eee"
|
|
||||||
style: ButtonStyle {
|
|
||||||
label: Text {
|
|
||||||
color: Constants.colorsDefaultText
|
|
||||||
anchors.fill: parent
|
|
||||||
renderType: Text.NativeRendering
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
text: control.text
|
|
||||||
opacity: enabled ? 1 : 0.7
|
|
||||||
}
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
id: buttonBackground
|
||||||
implicitWidth: 100
|
implicitWidth: 100
|
||||||
implicitHeight: 23
|
implicitHeight: 23
|
||||||
radius: 3
|
radius: 3
|
||||||
gradient: control.pressed ? pressedGradient : gradient
|
color: StudioTheme.Values.themeControlBackground
|
||||||
Gradient{
|
border.color: StudioTheme.Values.themeControlOutline
|
||||||
id: pressedGradient
|
border.width: StudioTheme.Values.border
|
||||||
GradientStop{color: "#333" ; position: 0}
|
|
||||||
}
|
}
|
||||||
Gradient {
|
|
||||||
id: gradient
|
contentItem: Text {
|
||||||
GradientStop {color: "#606060" ; position: 0}
|
id: buttonText
|
||||||
GradientStop {color: "#404040" ; position: 0.07}
|
color: StudioTheme.Values.themeTextColor
|
||||||
GradientStop {color: "#303030" ; position: 1}
|
font.family: StudioTheme.Constants.font.family
|
||||||
}
|
font.pixelSize: StudioTheme.Values.myFontSize
|
||||||
Rectangle {
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: -1
|
renderType: Text.QtRendering
|
||||||
color: "transparent"
|
text: myButton.text
|
||||||
radius: 4
|
}
|
||||||
opacity: 0.3
|
|
||||||
visible: control.activeFocus
|
states: [
|
||||||
}
|
State {
|
||||||
|
name: "default"
|
||||||
|
when: myButton.enabled && !myButton.hovered && !myButton.pressed
|
||||||
|
&& !myButton.checked
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: StudioTheme.Values.themeControlBackground
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "hovered"
|
||||||
|
when: myButton.hovered && !myButton.pressed
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: StudioTheme.Values.themeHoverHighlight
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "pressed"
|
||||||
|
when: myButton.hovered && myButton.pressed
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: StudioTheme.Values.themeControlBackgroundPressed
|
||||||
|
border.color: StudioTheme.Values.themeInteraction
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "disabled"
|
||||||
|
when: !myButton.enabled
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: StudioTheme.Values.themeControlBackgroundDisabled
|
||||||
|
border.color: StudioTheme.Values.themeControlOutlineDisabled
|
||||||
|
}
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonText
|
||||||
|
color: StudioTheme.Values.themeTextColorDisabled
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@@ -23,10 +23,8 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.0 as Controls
|
import QtQuick.Layouts 1.15
|
||||||
import QtQuick.Layouts 1.0
|
|
||||||
import QtQuick.Controls.Private 1.0
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@@ -38,7 +38,7 @@ Column {
|
|||||||
|
|
||||||
property bool supportGradient: false
|
property bool supportGradient: false
|
||||||
|
|
||||||
property string caption: "Color"
|
property string caption: qsTr("Color")
|
||||||
|
|
||||||
property variant backendValue
|
property variant backendValue
|
||||||
|
|
||||||
@@ -47,7 +47,6 @@ Column {
|
|||||||
return Qt.rgba(backendValue.value.x, backendValue.value.y, backendValue.value.z, 1);
|
return Qt.rgba(backendValue.value.x, backendValue.value.y, backendValue.value.z, 1);
|
||||||
else
|
else
|
||||||
return backendValue.value;
|
return backendValue.value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
property alias gradientPropertyName: gradientLine.gradientPropertyName
|
property alias gradientPropertyName: gradientLine.gradientPropertyName
|
||||||
|
@@ -73,7 +73,6 @@ Section {
|
|||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
width: 160
|
width: 160
|
||||||
property string familyName: backendValue.value
|
property string familyName: backendValue.value
|
||||||
onFamilyNameChanged: print(styleNamesForFamily(familyName))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
@@ -23,12 +23,11 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.15
|
||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Layouts 1.15
|
||||||
import QtQuick.Dialogs 1.3
|
import QtQuick.Dialogs 1.3
|
||||||
|
|
||||||
import HelperWidgets 2.0
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
import StudioControls 1.0 as StudioControls
|
import StudioControls 1.0 as StudioControls
|
||||||
import StudioTheme 1.0 as StudioTheme
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
@@ -76,26 +75,30 @@ Dialog {
|
|||||||
anchors.margins: 13
|
anchors.margins: 13
|
||||||
anchors.bottomMargin: 71
|
anchors.bottomMargin: 71
|
||||||
|
|
||||||
TabView {
|
StudioControls.TabBar {
|
||||||
id: presetTabView
|
id: presetTabBar
|
||||||
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
|
|
||||||
Layout.fillHeight: true
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
Tab {
|
anchors.left: parent.left
|
||||||
title: qsTr("System Presets")
|
anchors.right: parent.right
|
||||||
anchors.fill: parent
|
|
||||||
|
StudioControls.TabButton {
|
||||||
|
text: qsTr("System Presets")
|
||||||
|
}
|
||||||
|
StudioControls.TabButton {
|
||||||
|
text: qsTr("User Presets")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StackLayout {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
currentIndex: presetTabBar.currentIndex
|
||||||
|
|
||||||
GradientPresetTabContent {
|
GradientPresetTabContent {
|
||||||
id: defaultTabContent
|
id: defaultTabContent
|
||||||
viewModel: defaultPresetListModel
|
viewModel: defaultPresetListModel
|
||||||
editableName: false
|
editableName: false
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Tab {
|
|
||||||
title: qsTr("User Presets")
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
GradientPresetTabContent {
|
GradientPresetTabContent {
|
||||||
id: customTabContent
|
id: customTabContent
|
||||||
@@ -121,7 +124,6 @@ Dialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
Layout.alignment: Qt.AlignBottom | Qt.AlignRight
|
Layout.alignment: Qt.AlignBottom | Qt.AlignRight
|
||||||
|
@@ -23,12 +23,11 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.11
|
import QtQuick 2.15
|
||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Controls 2.15
|
||||||
import QtQuick.Dialogs 1.3
|
import QtQuick.Layouts 1.15
|
||||||
|
|
||||||
import HelperWidgets 2.0
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
import StudioControls 1.0 as StudioControls
|
import StudioControls 1.0 as StudioControls
|
||||||
import StudioTheme 1.0 as StudioTheme
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
@@ -48,11 +47,6 @@ Rectangle {
|
|||||||
property real delegateHeight: 178
|
property real delegateHeight: 178
|
||||||
property real gridCellWidth: 160
|
property real gridCellWidth: 160
|
||||||
|
|
||||||
ScrollView {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.fillHeight: true
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
GridView {
|
GridView {
|
||||||
id: gradientTable
|
id: gradientTable
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
@@ -66,6 +60,18 @@ Rectangle {
|
|||||||
cellWidth: width / gridColumns
|
cellWidth: width / gridColumns
|
||||||
cellHeight: 185
|
cellHeight: 185
|
||||||
|
|
||||||
|
property bool bothVisible: horizontal.scrollBarVisible && vertical.scrollBarVisible
|
||||||
|
|
||||||
|
ScrollBar.horizontal: HorizontalScrollBar {
|
||||||
|
id: horizontal
|
||||||
|
parent: gradientTable
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollBar.vertical: VerticalScrollBar {
|
||||||
|
id: vertical
|
||||||
|
parent: gradientTable
|
||||||
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: gradientDelegate
|
id: gradientDelegate
|
||||||
|
|
||||||
@@ -87,7 +93,7 @@ Rectangle {
|
|||||||
gradientData.colors = stopsColorList
|
gradientData.colors = stopsColorList
|
||||||
gradientData.stopsCount = stopListSize
|
gradientData.stopsCount = stopListSize
|
||||||
gradientData.presetID = presetID
|
gradientData.presetID = presetID
|
||||||
gradientData.presetType = presetTabView.currentIndex
|
gradientData.presetType = presetTabBar.currentIndex
|
||||||
|
|
||||||
if (gradientData.selectedItem != null)
|
if (gradientData.selectedItem != null)
|
||||||
gradientData.selectedItem.isSelected = false
|
gradientData.selectedItem.isSelected = false
|
||||||
@@ -317,5 +323,4 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Creator.
|
** This file is part of Qt Creator.
|
||||||
@@ -23,25 +23,29 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.15
|
||||||
import QtQuick.Controls.Styles 1.1
|
import StudioTheme 1.0 as StudioTheme
|
||||||
import QtQuickDesignerTheme 1.0
|
|
||||||
|
|
||||||
TextFieldStyle {
|
ScrollBar {
|
||||||
selectionColor: Theme.color(Theme.PanelTextColorLight)
|
id: scrollBar
|
||||||
selectedTextColor: Theme.color(Theme.PanelTextColorDark)
|
|
||||||
textColor: Theme.color(Theme.PanelTextColorLight)
|
|
||||||
placeholderTextColor: Theme.color(Theme.PanelTextColorMid)
|
|
||||||
|
|
||||||
padding.top: 4
|
property bool scrollBarVisible: parent.childrenRect.width > parent.width
|
||||||
padding.bottom: 4
|
|
||||||
|
orientation: Qt.Horizontal
|
||||||
|
policy: scrollBar.scrollBarVisible ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
|
||||||
|
x: 0
|
||||||
|
y: parent.height - height
|
||||||
|
width: parent.availableWidth
|
||||||
|
- (parent.bothVisible ? parent.verticalThickness : 0)
|
||||||
|
padding: 0
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
implicitWidth: 100
|
color: StudioTheme.Values.themeSectionHeadBackground
|
||||||
implicitHeight: font.pixelSize + padding.top + padding.bottom
|
}
|
||||||
color: Theme.color(Theme.FancyToolButtonSelectedColor)
|
|
||||||
border.color: Theme.qmlDesignerBackgroundColorDarker()
|
contentItem: Rectangle {
|
||||||
|
implicitHeight: StudioTheme.Values.scrollBarThickness
|
||||||
|
color: StudioTheme.Values.themeScrollBarHandle
|
||||||
}
|
}
|
||||||
renderType: Text.NativeRendering
|
|
||||||
}
|
}
|
@@ -23,31 +23,16 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 2.0 as Controls
|
import HelperWidgets 2.0
|
||||||
import QtQuick.Layouts 1.0
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
Item {
|
Label {
|
||||||
id: label
|
id: myLabel
|
||||||
width: parent.width < 300 ? 80 : Math.min(140, parent.width - 220)
|
|
||||||
height: 16
|
|
||||||
property alias source: image.source
|
|
||||||
|
|
||||||
Item {
|
property alias icon: myLabel.text
|
||||||
width: 16
|
|
||||||
height: 16
|
|
||||||
Image {
|
|
||||||
id: image
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
text: StudioTheme.Constants.actionIcon
|
||||||
|
font.family: StudioTheme.Constants.iconFont.family
|
||||||
Layout.preferredWidth: width
|
font.pixelSize: StudioTheme.Values.myIconFontSize
|
||||||
Layout.minimumWidth: width
|
|
||||||
Layout.maximumWidth: width
|
|
||||||
|
|
||||||
// Component.onCompleted: {
|
|
||||||
// label.Layout.preferredWidth = width
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@@ -23,13 +23,37 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.0 as Controls
|
import QtQuick.Controls 2.15
|
||||||
import "../../../common/"
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
Controls.ScrollView {
|
Flickable {
|
||||||
style: DesignerScrollViewStyle {
|
id: flickable
|
||||||
|
|
||||||
|
property alias horizontalThickness: horizontalScrollBar.height
|
||||||
|
property alias verticalThickness: verticalScrollBar.width
|
||||||
|
property bool bothVisible: verticalScrollBar.scrollBarVisible
|
||||||
|
&& horizontalScrollBar.scrollBarVisible
|
||||||
|
|
||||||
|
contentWidth: areaItem.childrenRect.width
|
||||||
|
contentHeight: areaItem.childrenRect.height
|
||||||
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
|
||||||
|
default property alias content: areaItem.children
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: areaItem
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollBar.horizontal: HorizontalScrollBar {
|
||||||
|
id: horizontalScrollBar
|
||||||
|
parent: flickable
|
||||||
|
scrollBarVisible: areaItem.childrenRect.width > flickable.width
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollBar.vertical: VerticalScrollBar {
|
||||||
|
id: verticalScrollBar
|
||||||
|
parent: flickable
|
||||||
|
scrollBarVisible: areaItem.childrenRect.height > flickable.height
|
||||||
}
|
}
|
||||||
frameVisible: false
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Creator.
|
** This file is part of Qt Creator.
|
||||||
@@ -23,9 +23,29 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.0 as Controls
|
import QtQuick.Controls 2.15
|
||||||
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
Controls.Tab {
|
ScrollBar {
|
||||||
|
id: scrollBar
|
||||||
|
|
||||||
|
property bool scrollBarVisible: parent.childrenRect.height > parent.height
|
||||||
|
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
policy: scrollBar.scrollBarVisible ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
|
||||||
|
x: parent.width - width
|
||||||
|
y: 0
|
||||||
|
height: parent.availableHeight
|
||||||
|
- (parent.bothVisible ? parent.horizontalThickness : 0)
|
||||||
|
padding: 0
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: StudioTheme.Values.themeSectionHeadBackground
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: Rectangle {
|
||||||
|
implicitWidth: StudioTheme.Values.scrollBarThickness
|
||||||
|
color: StudioTheme.Values.themeScrollBarHandle
|
||||||
|
}
|
||||||
}
|
}
|
@@ -39,11 +39,11 @@ SimpleColorPalette 2.0 SimpleColorPalette.qml
|
|||||||
DoubleSpinBox 2.0 DoubleSpinBox.qml
|
DoubleSpinBox 2.0 DoubleSpinBox.qml
|
||||||
SpinBox 2.0 SpinBox.qml
|
SpinBox 2.0 SpinBox.qml
|
||||||
StandardTextSection 2.0 StandardTextSection.qml
|
StandardTextSection 2.0 StandardTextSection.qml
|
||||||
Tab 2.0 Tab.qml
|
|
||||||
TabView 2.0 TabView.qml
|
|
||||||
ToolTipArea 2.0 ToolTipArea.qml
|
ToolTipArea 2.0 ToolTipArea.qml
|
||||||
UrlChooser 2.0 UrlChooser.qml
|
UrlChooser 2.0 UrlChooser.qml
|
||||||
PaddingSection 2.0 PaddingSection.qml
|
PaddingSection 2.0 PaddingSection.qml
|
||||||
RoundedPanel 2.0 RoundedPanel.qml
|
RoundedPanel 2.0 RoundedPanel.qml
|
||||||
ExpressionTextField 2.0 ExpressionTextField.qml
|
ExpressionTextField 2.0 ExpressionTextField.qml
|
||||||
MarginSection 2.0 MarginSection.qml
|
MarginSection 2.0 MarginSection.qml
|
||||||
|
HorizontalScrollBar 2.0 HorizontalScrollBar.qml
|
||||||
|
VerticalScrollBar 2.0 VerticalScrollBar.qml
|
||||||
|
@@ -116,7 +116,6 @@ Rectangle {
|
|||||||
color: StudioTheme.Values.themeHoverHighlight
|
color: StudioTheme.Values.themeHoverHighlight
|
||||||
border.color: StudioTheme.Values.themeControlOutline
|
border.color: StudioTheme.Values.themeControlOutline
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: "edit"
|
name: "edit"
|
||||||
|
@@ -46,8 +46,7 @@ T.CheckBox {
|
|||||||
|
|
||||||
implicitWidth: Math.max(
|
implicitWidth: Math.max(
|
||||||
implicitBackgroundWidth + leftInset + rightInset,
|
implicitBackgroundWidth + leftInset + rightInset,
|
||||||
implicitContentWidth + leftPadding + rightPadding
|
implicitContentWidth + leftPadding + rightPadding)
|
||||||
+ implicitIndicatorWidth + spacing + actionIndicator.width)
|
|
||||||
implicitHeight: Math.max(
|
implicitHeight: Math.max(
|
||||||
implicitBackgroundHeight + topInset + bottomInset,
|
implicitBackgroundHeight + topInset + bottomInset,
|
||||||
implicitContentHeight + topPadding + bottomPadding,
|
implicitContentHeight + topPadding + bottomPadding,
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Creator.
|
** This file is part of Qt Creator.
|
||||||
@@ -23,38 +23,33 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Templates 2.15 as T
|
||||||
import QtQuick.Controls.Styles 1.1
|
import StudioTheme 1.0 as StudioTheme
|
||||||
import QtQuickDesignerTheme 1.0
|
|
||||||
|
|
||||||
ScrollViewStyle {
|
T.TabBar {
|
||||||
readonly property color scrollbarColor: Theme.color(Theme.BackgroundColorDark)
|
id: myButton
|
||||||
readonly property color scrollBarHandleColor: Theme.color(Theme.QmlDesigner_ScrollBarHandleColor)
|
|
||||||
|
|
||||||
padding {left: 0; top: 0; right: 0; bottom: 0}
|
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
||||||
|
implicitContentWidth + leftPadding + rightPadding)
|
||||||
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||||
|
implicitContentHeight + topPadding + bottomPadding)
|
||||||
|
|
||||||
scrollBarBackground: Rectangle {
|
spacing: 0
|
||||||
height: 10
|
bottomPadding: 4
|
||||||
width: 10
|
|
||||||
color: scrollbarColor
|
contentItem: ListView {
|
||||||
}
|
model: myButton.contentModel
|
||||||
handle: Item {
|
currentIndex: myButton.currentIndex
|
||||||
implicitWidth: 10
|
|
||||||
implicitHeight: 10
|
spacing: myButton.spacing
|
||||||
Rectangle {
|
orientation: ListView.Horizontal
|
||||||
anchors.fill: parent
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
color: scrollBarHandleColor
|
flickableDirection: Flickable.AutoFlickIfNeeded
|
||||||
}
|
snapMode: ListView.SnapToItem
|
||||||
}
|
}
|
||||||
|
|
||||||
decrementControl: Item {}
|
background: Rectangle {
|
||||||
incrementControl: Item {}
|
color: StudioTheme.Values.themeTabLight
|
||||||
corner: Item {}
|
|
||||||
|
|
||||||
//Even if the platform style reports touch support a scrollview should not be flickable.
|
|
||||||
Component.onCompleted: {
|
|
||||||
control.flickableItem.interactive = false
|
|
||||||
}
|
}
|
||||||
transientScrollBars: false
|
|
||||||
}
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of Qt Creator.
|
** This file is part of Qt Creator.
|
||||||
@@ -23,40 +23,38 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.1
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.0 as Controls
|
import QtQuick.Templates 2.15 as T
|
||||||
import QtQuick.Controls.Styles 1.1
|
|
||||||
import QtQuickDesignerTheme 1.0
|
|
||||||
import StudioTheme 1.0 as StudioTheme
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
Controls.TabView {
|
T.TabButton {
|
||||||
id: root
|
id: myButton
|
||||||
|
|
||||||
frameVisible: false
|
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
||||||
style: TabViewStyle {
|
implicitContentWidth + leftPadding + rightPadding)
|
||||||
frameOverlap: 0
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||||
frame: Item { }
|
implicitContentHeight + topPadding + bottomPadding)
|
||||||
tab: Rectangle {
|
|
||||||
color: styleData.selected ? Theme.qmlDesignerTabLight() : Theme.qmlDesignerTabDark()
|
padding: 1
|
||||||
implicitWidth: root.width/root.count + 2
|
|
||||||
implicitHeight: 28
|
background: Rectangle {
|
||||||
Text {
|
id: buttonBackground
|
||||||
id: text
|
color: myButton.checked ? StudioTheme.Values.themeTabLight : StudioTheme.Values.themeTabDark
|
||||||
font.bold: true
|
border.color: StudioTheme.Values.themeControlOutline
|
||||||
|
border.width: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: T.Label {
|
||||||
|
id: buttonIcon
|
||||||
|
color: myButton.checked ? StudioTheme.Values.themeTabDark : StudioTheme.Values.themeTabLight
|
||||||
|
font.weight: Font.Bold
|
||||||
|
//font.family: StudioTheme.Constants.font.family
|
||||||
font.pixelSize: StudioTheme.Values.myFontSize
|
font.pixelSize: StudioTheme.Values.myFontSize
|
||||||
anchors.centerIn: parent
|
verticalAlignment: Text.AlignVCenter
|
||||||
anchors.verticalCenterOffset: -1
|
horizontalAlignment: Text.AlignHCenter
|
||||||
text: styleData.title
|
anchors.fill: parent
|
||||||
renderType: Text.NativeRendering
|
renderType: Text.QtRendering
|
||||||
color: styleData.selected ? Theme.qmlDesignerTabDark() : Theme.qmlDesignerTabLight()
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
text: myButton.text
|
||||||
color:Theme.qmlDesignerTabLight()
|
|
||||||
width: parent.width
|
|
||||||
height: 4
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -28,6 +28,8 @@ SliderPopup 1.0 SliderPopup.qml
|
|||||||
SpinBox 1.0 SpinBox.qml
|
SpinBox 1.0 SpinBox.qml
|
||||||
SpinBoxIndicator 1.0 SpinBoxIndicator.qml
|
SpinBoxIndicator 1.0 SpinBoxIndicator.qml
|
||||||
SpinBoxInput 1.0 SpinBoxInput.qml
|
SpinBoxInput 1.0 SpinBoxInput.qml
|
||||||
|
TabBar 1.0 TabBar.qml
|
||||||
|
TabButton 1.0 TabButton.qml
|
||||||
TextArea 1.0 TextArea.qml
|
TextArea 1.0 TextArea.qml
|
||||||
TextField 1.0 TextField.qml
|
TextField 1.0 TextField.qml
|
||||||
TranslationIndicator 1.0 TranslationIndicator.qml
|
TranslationIndicator 1.0 TranslationIndicator.qml
|
||||||
|
@@ -79,6 +79,8 @@ QtObject {
|
|||||||
|
|
||||||
property real inputHorizontalPadding: Math.round(4 * values.scaleFactor)
|
property real inputHorizontalPadding: Math.round(4 * values.scaleFactor)
|
||||||
|
|
||||||
|
property real scrollBarThickness: 10
|
||||||
|
|
||||||
// Theme Colors
|
// Theme Colors
|
||||||
|
|
||||||
// COLORS NOW COME FROM THE THEME FILES
|
// COLORS NOW COME FROM THE THEME FILES
|
||||||
@@ -117,6 +119,9 @@ QtObject {
|
|||||||
property string themeTranslationIndicatorBorder: Theme.color(Theme.DStranlsationIndicatorBorder)
|
property string themeTranslationIndicatorBorder: Theme.color(Theme.DStranlsationIndicatorBorder)
|
||||||
property string themeSectionHeadBackground: Theme.color(Theme.DSsectionHeadBackground)
|
property string themeSectionHeadBackground: Theme.color(Theme.DSsectionHeadBackground)
|
||||||
|
|
||||||
|
property string themeTabDark: Theme.color(Theme.QmlDesigner_TabDark)
|
||||||
|
property string themeTabLight: Theme.color(Theme.QmlDesigner_TabLight)
|
||||||
|
|
||||||
// Taken out of Constants.js
|
// Taken out of Constants.js
|
||||||
property string themeChangedStateText: Theme.color(Theme.DSchangedStateText)
|
property string themeChangedStateText: Theme.color(Theme.DSchangedStateText)
|
||||||
}
|
}
|
||||||
|
@@ -23,13 +23,15 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
|
||||||
import QtQuick.Controls.Styles 1.1
|
|
||||||
import HelperWidgets 2.0
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import StudioControls 1.0 as StudioControls
|
||||||
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
id: myRoot
|
||||||
|
|
||||||
border.width: 1
|
border.width: 1
|
||||||
property bool isBaseState
|
property bool isBaseState
|
||||||
property bool isCurrentState
|
property bool isCurrentState
|
||||||
@@ -41,6 +43,8 @@ Rectangle {
|
|||||||
property string delegateWhenConditionString
|
property string delegateWhenConditionString
|
||||||
readonly property bool isDefaultState: isDefault
|
readonly property bool isDefaultState: isDefault
|
||||||
|
|
||||||
|
signal delegateInteraction
|
||||||
|
|
||||||
color: baseColor
|
color: baseColor
|
||||||
border.color: Theme.qmlDesignerBorderColor()
|
border.color: Theme.qmlDesignerBorderColor()
|
||||||
|
|
||||||
@@ -50,38 +54,28 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
|
id: mouseArea
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
acceptedButtons: Qt.LeftButton
|
acceptedButtons: Qt.LeftButton
|
||||||
onClicked: {
|
onClicked: {
|
||||||
focus = true
|
focus = true
|
||||||
root.currentStateInternalId = internalNodeId
|
root.currentStateInternalId = internalNodeId
|
||||||
|
contextMenu.dismiss() // close potentially open context menu
|
||||||
|
myRoot.delegateInteraction()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolButton {
|
StudioControls.AbstractButton {
|
||||||
id: removeStateButton
|
id: removeStateButton
|
||||||
|
buttonIcon: StudioTheme.Constants.closeCross
|
||||||
style: ButtonStyle {
|
|
||||||
background: Rectangle {
|
|
||||||
color: control.hovered ? Qt.lighter(baseColor, 1.2) : "transparent"
|
|
||||||
Image {
|
|
||||||
source: "image://icons/close"
|
|
||||||
height: 16
|
|
||||||
width: 16
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 2
|
anchors.rightMargin: 4
|
||||||
anchors.verticalCenter: stateNameField.verticalCenter
|
anchors.verticalCenter: stateNameField.verticalCenter
|
||||||
height: 16
|
|
||||||
width: 16
|
|
||||||
visible: !isBaseState
|
visible: !isBaseState
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
myRoot.delegateInteraction()
|
||||||
if (isDefaultState)
|
if (isDefaultState)
|
||||||
statesEditorModel.resetDefaultState()
|
statesEditorModel.resetDefaultState()
|
||||||
|
|
||||||
@@ -89,32 +83,11 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
StudioControls.Menu {
|
||||||
id: whenButton
|
|
||||||
visible: !isBaseState || (isBaseState && modelHasDefaultState)
|
|
||||||
width: 14
|
|
||||||
height: 14
|
|
||||||
x: 4
|
|
||||||
y: 6
|
|
||||||
source: {
|
|
||||||
if (whenMouseArea.containsMouse)
|
|
||||||
return "image://icons/submenu"
|
|
||||||
|
|
||||||
return delegateHasWhenCondition ? "image://icons/expression" : "image://icons/placeholder"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
MouseArea {
|
|
||||||
id: whenMouseArea
|
|
||||||
hoverEnabled: true
|
|
||||||
anchors.fill: parent
|
|
||||||
onClicked: contextMenu.popup()
|
|
||||||
}
|
|
||||||
Menu {
|
|
||||||
id: contextMenu
|
id: contextMenu
|
||||||
|
|
||||||
MenuItem {
|
StudioControls.MenuItem {
|
||||||
visible: !isBaseState
|
enabled: !isBaseState
|
||||||
text: qsTr("Set when Condition")
|
text: qsTr("Set when Condition")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
bindingEditor.showWidget()
|
bindingEditor.showWidget()
|
||||||
@@ -123,52 +96,65 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem {
|
StudioControls.MenuItem {
|
||||||
visible: !isBaseState && delegateHasWhenCondition
|
enabled: !isBaseState && delegateHasWhenCondition
|
||||||
text: qsTr("Reset when Condition")
|
text: qsTr("Reset when Condition")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
statesEditorModel.resetWhenCondition(internalNodeId)
|
statesEditorModel.resetWhenCondition(internalNodeId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem {
|
StudioControls.MenuItem {
|
||||||
visible: !isBaseState && !isDefaultState
|
enabled: !isBaseState && !isDefaultState
|
||||||
text: qsTr("Set as Default")
|
text: qsTr("Set as Default")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
statesEditorModel.setStateAsDefault(internalNodeId)
|
statesEditorModel.setStateAsDefault(internalNodeId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem {
|
StudioControls.MenuItem {
|
||||||
visible: (!isBaseState && isDefaultState) || (isBaseState && modelHasDefaultState)
|
enabled: (!isBaseState && isDefaultState) || (isBaseState && modelHasDefaultState)
|
||||||
text: qsTr("Reset Default")
|
text: qsTr("Reset Default")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
statesEditorModel.resetDefaultState()
|
statesEditorModel.resetDefaultState()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onClosed: {
|
||||||
|
stateNameField.actionIndicator.forceVisible = false
|
||||||
|
}
|
||||||
|
|
||||||
|
onOpened: {
|
||||||
|
myRoot.delegateInteraction()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextField {
|
|
||||||
|
StudioControls.TextField {
|
||||||
id: stateNameField
|
id: stateNameField
|
||||||
|
actionIndicatorVisible: !isBaseState || (isBaseState && modelHasDefaultState)
|
||||||
|
|
||||||
|
actionIndicator.onClicked: {
|
||||||
|
stateNameField.actionIndicator.forceVisible = true
|
||||||
|
contextMenu.popup()
|
||||||
|
}
|
||||||
|
|
||||||
|
onEditChanged: {
|
||||||
|
if (contextMenu.open && stateNameField.edit)
|
||||||
|
contextMenu.dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
actionIndicator.icon.text: delegateHasWhenCondition
|
||||||
|
? StudioTheme.Constants.actionIconBinding : StudioTheme.Constants.actionIcon
|
||||||
|
|
||||||
|
translationIndicatorVisible: false
|
||||||
y: 4
|
y: 4
|
||||||
font.pixelSize: Theme.smallFontPixelSize()
|
anchors.left: parent.left
|
||||||
anchors.left: whenButton.right
|
|
||||||
// use the spacing which the image to the delegate rectangle has
|
// use the spacing which the image to the delegate rectangle has
|
||||||
anchors.leftMargin: 4
|
anchors.leftMargin: (isBaseState ? StudioTheme.Values.height : 0) + 4
|
||||||
anchors.right: removeStateButton.left
|
anchors.right: removeStateButton.left
|
||||||
anchors.rightMargin: 4
|
anchors.rightMargin: 2
|
||||||
style: DesignerTextFieldStyle {
|
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 100
|
|
||||||
implicitHeight: font.pixelSize + padding.top + padding.bottom
|
|
||||||
color: ((isBaseState && modelHasDefaultState) ? "transparent"
|
|
||||||
: Theme.color(Theme.FancyToolButtonSelectedColor))
|
|
||||||
border.color: ((isBaseState && !modelHasDefaultState) || isDefaultState) ? "#ffd700"
|
|
||||||
: (isBaseState && modelHasDefaultState) ? "transparent"
|
|
||||||
: Theme.qmlDesignerBackgroundColorDarker()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
readOnly: isBaseState
|
readOnly: isBaseState
|
||||||
|
|
||||||
onActiveFocusChanged: {
|
onActiveFocusChanged: {
|
||||||
@@ -188,7 +174,7 @@ Rectangle {
|
|||||||
|
|
||||||
stateNameField.oldValue = stateNameField.text
|
stateNameField.oldValue = stateNameField.text
|
||||||
|
|
||||||
if (stateNameField.text != delegateStateName)
|
if (stateNameField.text !== delegateStateName)
|
||||||
statesEditorModel.renameState(internalNodeId, stateNameField.text)
|
statesEditorModel.renameState(internalNodeId, stateNameField.text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -220,8 +206,8 @@ Rectangle {
|
|||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: stateDefaultIndicator
|
id: stateDefaultIndicator
|
||||||
anchors.left: whenButton.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: 0
|
anchors.leftMargin: StudioTheme.Values.height
|
||||||
anchors.right: removeStateButton.left
|
anchors.right: removeStateButton.left
|
||||||
anchors.rightMargin: 4
|
anchors.rightMargin: 4
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
@@ -23,32 +23,33 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.15
|
||||||
import QtQuick.Controls.Styles 1.1
|
|
||||||
import "../common"
|
|
||||||
import QtQuickDesignerTheme 1.0
|
import QtQuickDesignerTheme 1.0
|
||||||
|
import HelperWidgets 2.0
|
||||||
|
import StudioControls 1.0 as StudioControls
|
||||||
|
import StudioTheme 1.0 as StudioTheme
|
||||||
|
|
||||||
FocusScope {
|
FocusScope {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
height: expanded ? 192 : 40
|
height: (root.expanded ? 192 : 40) + StudioTheme.Values.scrollBarThickness
|
||||||
signal createNewState
|
signal createNewState
|
||||||
signal deleteState(int internalNodeId)
|
signal deleteState(int internalNodeId)
|
||||||
signal duplicateCurrentState
|
signal duplicateCurrentState
|
||||||
|
|
||||||
property int stateImageSize: 180
|
property int stateImageSize: 180
|
||||||
property int delegateWidth: stateImageSize + 44
|
|
||||||
property int padding: 2
|
property int padding: 2
|
||||||
property int delegateHeight: root.height - padding * 2 + 1
|
property int delegateWidth: root.stateImageSize + 44
|
||||||
|
property int delegateHeight: root.height - StudioTheme.Values.scrollBarThickness - root.padding * 2 + 1
|
||||||
property int innerSpacing: 0
|
property int innerSpacing: 0
|
||||||
property int currentStateInternalId : 0
|
property int currentStateInternalId: 0
|
||||||
|
|
||||||
property bool expanded: true
|
property bool expanded: true
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: statesEditorModel
|
target: statesEditorModel
|
||||||
onChangedToState: root.currentStateInternalId = n
|
function onChangedToState(n) { root.currentStateInternalId = n }
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemPalette {
|
SystemPalette {
|
||||||
@@ -66,35 +67,41 @@ FocusScope {
|
|||||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (mouse.button === Qt.LeftButton)
|
if (mouse.button === Qt.LeftButton) {
|
||||||
|
contextMenu.dismiss()
|
||||||
focus = true
|
focus = true
|
||||||
else if (mouse.button === Qt.RightButton)
|
} else if (mouse.button === Qt.RightButton) {
|
||||||
contextMenu.popup()
|
contextMenu.popup()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Menu {
|
StudioControls.Menu {
|
||||||
id: contextMenu
|
id: contextMenu
|
||||||
|
|
||||||
MenuItem {
|
StudioControls.MenuItem {
|
||||||
text: root.expanded ? qsTr("Collapse") : qsTr("Expand")
|
text: root.expanded ? qsTr("Collapse") : qsTr("Expand")
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
root.expanded = !root.expanded
|
root.expanded = !root.expanded
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
function closeContextMenu() {
|
||||||
}
|
if (contextMenu.open)
|
||||||
|
contextMenu.dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: addStateItem
|
id: addStateItem
|
||||||
|
|
||||||
property int buttonLeftSpacing: 8 * (expanded ? 1 : 2)
|
property int buttonLeftSpacing: 8 * (root.expanded ? 1 : 2)
|
||||||
|
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
width: delegateHeight / 2 + buttonLeftSpacing
|
width: root.delegateHeight / 2 + buttonLeftSpacing
|
||||||
height: delegateHeight
|
height: root.delegateHeight
|
||||||
|
|
||||||
Button {
|
AbstractButton {
|
||||||
id: addStateButton
|
id: addStateButton
|
||||||
visible: canAddNewStates
|
visible: canAddNewStates
|
||||||
|
|
||||||
@@ -106,12 +113,14 @@ FocusScope {
|
|||||||
width: Math.max(parent.height / 2 - 8, 18)
|
width: Math.max(parent.height / 2 - 8, 18)
|
||||||
height: width
|
height: width
|
||||||
|
|
||||||
onClicked: root.createNewState()
|
onClicked: {
|
||||||
|
root.closeContextMenu()
|
||||||
|
root.createNewState()
|
||||||
|
}
|
||||||
|
|
||||||
style: ButtonStyle {
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
property color buttonBaseColor: Qt.darker(Theme.qmlDesignerBackgroundColorDarkAlternate(), 1.1)
|
property color buttonBaseColor: Qt.darker(Theme.qmlDesignerBackgroundColorDarkAlternate(), 1.1)
|
||||||
color: control.hovered ? Qt.lighter(buttonBaseColor, 1.2) : buttonBaseColor
|
color: addStateButton.hovered ? Qt.lighter(buttonBaseColor, 1.2) : buttonBaseColor
|
||||||
border.color: Theme.qmlDesignerBorderColor()
|
border.color: Theme.qmlDesignerBorderColor()
|
||||||
border.width: 1
|
border.width: 1
|
||||||
Image {
|
Image {
|
||||||
@@ -124,29 +133,28 @@ FocusScope {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ScrollView {
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: addStateItem.left
|
|
||||||
height: delegateHeight
|
|
||||||
y: padding
|
|
||||||
anchors.leftMargin: padding
|
|
||||||
anchors.rightMargin: padding
|
|
||||||
|
|
||||||
style: DesignerScrollViewStyle {
|
|
||||||
}
|
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
anchors.fill: parent
|
id: flickable
|
||||||
|
|
||||||
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: addStateItem.left
|
||||||
|
height: root.delegateHeight + StudioTheme.Values.scrollBarThickness
|
||||||
|
y: root.padding
|
||||||
|
anchors.leftMargin: root.padding
|
||||||
|
anchors.rightMargin: root.padding
|
||||||
|
|
||||||
model: statesEditorModel
|
model: statesEditorModel
|
||||||
orientation: ListView.Horizontal
|
orientation: ListView.Horizontal
|
||||||
spacing: innerSpacing
|
spacing: root.innerSpacing
|
||||||
|
|
||||||
delegate: StatesDelegate {
|
delegate: StatesDelegate {
|
||||||
id: statesDelegate
|
id: statesDelegate
|
||||||
width: delegateWidth
|
width: root.delegateWidth
|
||||||
height: delegateHeight
|
height: root.delegateHeight
|
||||||
isBaseState: 0 == internalNodeId
|
isBaseState: 0 == internalNodeId
|
||||||
isCurrentState: root.currentStateInternalId == internalNodeId
|
isCurrentState: root.currentStateInternalId == internalNodeId
|
||||||
baseColor: isCurrentState ? Theme.color(Theme.QmlDesigner_HighlightColor) : background.color
|
baseColor: isCurrentState ? Theme.color(Theme.QmlDesigner_HighlightColor) : background.color
|
||||||
@@ -155,7 +163,19 @@ FocusScope {
|
|||||||
delegateStateImageSize: stateImageSize
|
delegateStateImageSize: stateImageSize
|
||||||
delegateHasWhenCondition: hasWhenCondition
|
delegateHasWhenCondition: hasWhenCondition
|
||||||
delegateWhenConditionString: whenConditionString
|
delegateWhenConditionString: whenConditionString
|
||||||
|
onDelegateInteraction: root.closeContextMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property bool bothVisible: horizontal.scrollBarVisible && vertical.scrollBarVisible
|
||||||
|
|
||||||
|
ScrollBar.horizontal: HorizontalScrollBar {
|
||||||
|
id: horizontal
|
||||||
|
parent: flickable
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollBar.vertical: VerticalScrollBar {
|
||||||
|
id: vertical
|
||||||
|
parent: flickable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -110,6 +110,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
|
|||||||
{{"highlightColor"}, Utils::StyleHelper::notTooBrightHighlightColor()}
|
{{"highlightColor"}, Utils::StyleHelper::notTooBrightHighlightColor()}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
m_itemViewQuickWidget->setClearColor(Theme::getColor(Theme::Color::QmlDesigner_BackgroundColorDarkAlternate));
|
||||||
|
|
||||||
/* create Resources view and its model */
|
/* create Resources view and its model */
|
||||||
m_resourcesFileSystemModel = new CustomFileSystemModel(this);
|
m_resourcesFileSystemModel = new CustomFileSystemModel(this);
|
||||||
|
Reference in New Issue
Block a user