Refactoring of QML states

This commit is contained in:
Michaël Lemaire 2015-08-24 00:39:31 +02:00
parent d6233c70f0
commit b2a458b1f2
11 changed files with 113 additions and 93 deletions

View file

@ -0,0 +1,35 @@
import QtQuick 2.0
// Atmosphere control
BaseSection {
id: section
BaseToolbar {
id: toolbar
ToolbarButton {
id: tool_daytime
selected: true
picture: "images/icon_atmosphere_daytime.png"
hovertext: qsTr("Change the time of day")
}
}
PanelAtmosphereDaytime {
id: panel_daytime
anchors.left: toolbar.right
enabled: false
}
states: [
State {
name: "DayTime"
when: tool_daytime.selected
PropertyChanges {
target: panel_daytime
enabled: true
}
}
]
}

View file

@ -1,26 +1,11 @@
import QtQuick 2.0 import QtQuick 2.0
BaseRectangle { BaseRectangle {
property ToolbarButton tool
id: panel id: panel
width: 200 width: 200
height: primary_toolbar.current ? primary_toolbar.current.height : 10 height: parent.height
anchors.top: parent.top
color: "#40909090" color: "#40909090"
anchors.left: primary_toolbar.current ? primary_toolbar.current.right : parent.left
anchors.top: primary_toolbar.current ? primary_toolbar.current.top : parent.top
states: [
State {
name: "hidden"
when: !tool.selected
PropertyChanges {
target: panel
enabled: false
}
}
]
} }

View file

@ -1,11 +1,14 @@
import QtQuick 2.0 import QtQuick 2.0
Toolbar { BaseToolbar {
enabled: false enabled: false
height: parent.height - primary_toolbar.height height: parent.height - primary_toolbar.height
anchors.left: primary_toolbar.left anchors.left: primary_toolbar.left
anchors.top: primary_toolbar.bottom anchors.top: primary_toolbar.bottom
onEnabledChanged: primary_toolbar.current = this onEnabledChanged: {
if (enabled) {
primary_toolbar.current = this;
}
}
} }

View file

@ -0,0 +1,7 @@
import QtQuick 2.0
BaseRectangle {
anchors.bottom: main_ui.bottom
height: main_ui.height - primary_toolbar.height
}

View file

@ -4,6 +4,7 @@ BaseRectangle {
default property alias children : inner_space.children default property alias children : inner_space.children
property bool horizontal: false property bool horizontal: false
property list<BasePanel> panels
width: horizontal ? parent.width : 60 width: horizontal ? parent.width : 60
height: horizontal ? 60 : parent.height height: horizontal ? 60 : parent.height
color: "#50888888" color: "#50888888"
@ -15,17 +16,4 @@ BaseRectangle {
spacing: (parent.horizontal ? (parent.width - children.length * tool_terrain.width) : (parent.height - children.length * tool_terrain.height)) / (children.length + 1) spacing: (parent.horizontal ? (parent.width - children.length * tool_terrain.width) : (parent.height - children.length * tool_terrain.height)) / (children.length + 1)
anchors.centerIn: parent anchors.centerIn: parent
} }
onEnabledChanged: {
if (!enabled)
{
for (var i = 0; i < children.length; i++)
{
if (!children[i].toggle)
{
children[i].selected = false;
}
}
}
}
} }

View file

@ -1,6 +1,6 @@
import QtQuick 2.0 import QtQuick 2.0
Toolbar { BaseToolbar {
id: camera_choice id: camera_choice
horizontal: false horizontal: false
color: "#90888888" color: "#90888888"

View file

@ -1,14 +0,0 @@
import QtQuick 2.2
BasePanel {
width: 40
BaseSlider {
objectName: "water_height"
minimumValue: -1
maximumValue: 1
orientation: Qt.Vertical
anchors.fill: parent
anchors.margins: 10
}
}

View file

@ -0,0 +1,45 @@
import QtQuick 2.0
// Water control
BaseSection {
id: section
BaseToolbar {
id: toolbar
ToolbarButton {
id: tool_water_level
selected: true
picture: "images/icon_water_level.png"
hovertext: qsTr("Change the water altitude")
}
}
BasePanel {
id: panel_water_level
width: 40
anchors.left: toolbar.right
enabled: false
BaseSlider {
objectName: "water_height"
minimumValue: -1
maximumValue: 1
orientation: Qt.Vertical
anchors.fill: parent
anchors.margins: 10
}
}
states: [
State {
name: "WaterHeight"
when: tool_water_level.selected
PropertyChanges {
target: panel_water_level
enabled: true
}
}
]
}

View file

@ -9,14 +9,13 @@
<file>images/tab_textures.png</file> <file>images/tab_textures.png</file>
<file>images/tab_water.png</file> <file>images/tab_water.png</file>
<file>images/tab_display.png</file> <file>images/tab_display.png</file>
<file>Toolbar.qml</file> <file>BaseToolbar.qml</file>
<file>images/display_topdown.png</file> <file>images/display_topdown.png</file>
<file>images/help.png</file> <file>images/help.png</file>
<file>Tooltip.qml</file> <file>Tooltip.qml</file>
<file>images/icon_water.png</file> <file>images/icon_water.png</file>
<file>images/icon_water_level.png</file> <file>images/icon_water_level.png</file>
<file>BasePanel.qml</file> <file>BasePanel.qml</file>
<file>PanelWaterLevel.qml</file>
<file>images/icon_atmosphere.png</file> <file>images/icon_atmosphere.png</file>
<file>images/icon_atmosphere_daytime.png</file> <file>images/icon_atmosphere_daytime.png</file>
<file>BaseSlider.qml</file> <file>BaseSlider.qml</file>
@ -40,5 +39,8 @@
<file>images/toggle_water.png</file> <file>images/toggle_water.png</file>
<file>images/icon_render_quick.png</file> <file>images/icon_render_quick.png</file>
<file>images/icon_render_show.png</file> <file>images/icon_render_show.png</file>
<file>WaterSection.qml</file>
<file>BaseSection.qml</file>
<file>AtmosphereSection.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View file

@ -15,7 +15,7 @@ OpenGLView {
anchors.right: primary_toolbar.right anchors.right: primary_toolbar.right
} }
Toolbar { BaseToolbar {
id: primary_toolbar id: primary_toolbar
horizontal: true horizontal: true
color: "#90888888" color: "#90888888"
@ -61,24 +61,14 @@ OpenGLView {
} }
} }
BaseSecondaryToolbar { WaterSection {
id: water_toolbar id: water_section
enabled: false
ToolbarButton {
id: tool_water_level
picture: "images/icon_water_level.png"
hovertext: qsTr("Change the water altitude")
}
} }
BaseSecondaryToolbar { AtmosphereSection {
id: atmosphere_toolbar id: atmosphere_section
enabled: false
ToolbarButton {
id: tool_atmosphere_daytime
picture: "images/icon_atmosphere_daytime.png"
hovertext: qsTr("Change the time of day")
}
} }
BaseSecondaryToolbar { BaseSecondaryToolbar {
@ -158,22 +148,13 @@ OpenGLView {
anchors.fill: parent anchors.fill: parent
} }
PanelWaterLevel {
id: panel_water_level
tool: tool_water_level
}
PanelAtmosphereDaytime {
id: panel_atmosphere_daytime
tool: tool_atmosphere_daytime
}
states: [ states: [
State { State {
name: "Water Mode" name: "Water Mode"
when: tool_water.selected when: tool_water.selected
PropertyChanges { PropertyChanges {
target: water_toolbar target: water_section
enabled: true enabled: true
} }
}, },
@ -182,7 +163,7 @@ OpenGLView {
when: tool_atmosphere.selected when: tool_atmosphere.selected
PropertyChanges { PropertyChanges {
target: atmosphere_toolbar target: atmosphere_section
enabled: true enabled: true
} }
}, },

View file

@ -67,16 +67,4 @@ INCLUDEPATH += $$PWD/../../../render/opengl
DEPENDPATH += $$PWD/../../../render/opengl DEPENDPATH += $$PWD/../../../render/opengl
OTHER_FILES += \ OTHER_FILES += \
qml/main.qml \ qml/*.qml
qml/ToolbarButton.qml \
qml/OpenGLView.qml \
qml/Toolbar.qml \
qml/Tooltip.qml \
qml/BasePanel.qml \
qml/PanelWaterLevel.qml \
qml/PanelAtmosphereDaytime.qml \
qml/BaseSlider.qml \
qml/BaseChoice.qml \
qml/BaseChoiceItem.qml \
qml/RenderDialog.qml \
qml/CameraChoice.qml