190 lines
4.5 KiB
QML
190 lines
4.5 KiB
QML
// Copyright (c) Daniel Gakwaya.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import QtQuick
|
|
import QtQuick.Window
|
|
import QtCore
|
|
Window {
|
|
visible: true
|
|
width: 640
|
|
height: 480
|
|
title: qsTr("Custom Settings Demo")
|
|
|
|
Rectangle {
|
|
id: containerRectId
|
|
anchors.fill: parent
|
|
|
|
Rectangle {
|
|
id: skyId
|
|
width: parent.width
|
|
height: 200
|
|
//color : "blue"
|
|
gradient: Gradient {
|
|
GradientStop {id: skyStartColorId; position: 0.0; color: "blue" }
|
|
GradientStop {id: skyEndColorId; position: 1.0; color: "#66CCFF" }
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
id: groundId
|
|
anchors.top: skyId.bottom
|
|
anchors.bottom: parent.bottom
|
|
width: parent.width
|
|
//color: "lime"
|
|
gradient: Gradient {
|
|
GradientStop {id: groundStartColorId; position: 0.0; color: "lime" }
|
|
GradientStop {id: groundEndColorId; position: 1.0; color: "#66CCFF" }
|
|
}
|
|
}
|
|
|
|
Image {
|
|
id: treespringId
|
|
x: 50
|
|
y: 100
|
|
width: 200
|
|
height: 300
|
|
source: "qrc:/images/treespringsmall.png"
|
|
}
|
|
Image {
|
|
id: treeSummerId
|
|
x: 50
|
|
y: 100
|
|
width: 200
|
|
height: 300
|
|
source: "qrc:/images/treesummersmall.png"
|
|
}
|
|
|
|
Rectangle {
|
|
id : sunId
|
|
x: parent.width - width -100
|
|
y: 50
|
|
width: 100
|
|
height: 100
|
|
color: "yellow"
|
|
radius: 60
|
|
|
|
|
|
}
|
|
|
|
//state : "spring"
|
|
state: settings.state
|
|
|
|
//States
|
|
states: [
|
|
State {
|
|
name : "summer"
|
|
PropertyChanges {
|
|
target: skyId
|
|
color: "lightblue"
|
|
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: skyStartColorId
|
|
color: "lightblue"
|
|
}
|
|
PropertyChanges {
|
|
target: skyEndColorId
|
|
color: "#EECCFF"
|
|
}
|
|
|
|
|
|
|
|
PropertyChanges {
|
|
target: treeSummerId
|
|
opacity: 1
|
|
}
|
|
PropertyChanges {
|
|
target: treespringId
|
|
opacity: 0
|
|
}
|
|
|
|
|
|
PropertyChanges {
|
|
target: groundStartColorId
|
|
color: "lime"
|
|
}
|
|
PropertyChanges {
|
|
target: groundEndColorId
|
|
color: "darkkhaki"
|
|
}
|
|
PropertyChanges {
|
|
target: sunId
|
|
color: "yellow"
|
|
|
|
}
|
|
|
|
|
|
},
|
|
State {
|
|
name: "spring"
|
|
PropertyChanges {
|
|
target: skyId
|
|
color: "deepskyblue"
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: skyStartColorId
|
|
color: "deepskyblue"
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: skyEndColorId
|
|
color: "#AACCFF"
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: treeSummerId
|
|
opacity: 0
|
|
}
|
|
PropertyChanges {
|
|
target: treespringId
|
|
opacity: 1
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: groundStartColorId
|
|
color: "lime"
|
|
}
|
|
PropertyChanges {
|
|
target: groundStartColorId
|
|
color: "lime"
|
|
}
|
|
|
|
PropertyChanges {
|
|
target: sunId
|
|
color: "lightyellow"
|
|
}
|
|
}
|
|
]
|
|
|
|
transitions : Transition {
|
|
from: "*" ; to: "*"
|
|
|
|
ColorAnimation {
|
|
duration: 500
|
|
}
|
|
NumberAnimation {
|
|
properties: "opacity"
|
|
duration: 500
|
|
}
|
|
}
|
|
|
|
MouseArea{
|
|
anchors.fill: parent
|
|
onClicked: {
|
|
containerRectId.state = (containerRectId.state === "spring" ? "summer" : "spring")
|
|
}
|
|
}
|
|
|
|
Settings {
|
|
id: settings
|
|
property string state: "spring"
|
|
}
|
|
|
|
Component.onDestruction: {
|
|
settings.state = containerRectId.state
|
|
}
|
|
}
|
|
}
|