init: working version
This commit is contained in:
commit
7d8d7dacae
109 changed files with 15066 additions and 0 deletions
129
modules/dashboard/dash/Weather.qml
Normal file
129
modules/dashboard/dash/Weather.qml
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
import qs.config
|
||||
import qs.custom
|
||||
import qs.services
|
||||
import qs.util
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: 16
|
||||
anchors.topMargin: 6
|
||||
|
||||
Component.onCompleted: Weather.reload()
|
||||
|
||||
CustomText {
|
||||
id: city
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
|
||||
text: Weather.city
|
||||
color: Config.colors.tertiary
|
||||
}
|
||||
|
||||
|
||||
MaterialIcon {
|
||||
id: icon
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.verticalCenterOffset: font.pointSize * 0.25
|
||||
|
||||
animate: true
|
||||
animateProp: "opacity"
|
||||
text: Weather.icon
|
||||
color: Weather.iconColor
|
||||
font.pointSize: Config.font.size.largest * 1.8
|
||||
|
||||
Behavior on color {
|
||||
SequentialAnimation {
|
||||
PauseAnimation {
|
||||
duration: icon.animateDuration / 2
|
||||
}
|
||||
PropertyAction {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
id: info
|
||||
|
||||
anchors.left: icon.right
|
||||
anchors.verticalCenter: icon.verticalCenter
|
||||
anchors.verticalCenterOffset: -3
|
||||
anchors.leftMargin: 14
|
||||
spacing: 1
|
||||
|
||||
opacity: Weather.available ? 1 : 0
|
||||
|
||||
Behavior on opacity {
|
||||
SequentialAnimation {
|
||||
PauseAnimation {
|
||||
duration: temp.animateDuration / 2
|
||||
}
|
||||
PropertyAction {}
|
||||
}
|
||||
}
|
||||
|
||||
CustomText {
|
||||
id: temp
|
||||
animate: true
|
||||
text: Weather.temp
|
||||
color: Config.colors.primary
|
||||
font.pointSize: Config.font.size.large
|
||||
font.weight: 500
|
||||
|
||||
// Reduce padding at bottom of text
|
||||
height: implicitHeight * 0.9
|
||||
|
||||
CustomText {
|
||||
anchors.left: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.leftMargin: 12
|
||||
anchors.bottomMargin: 1
|
||||
|
||||
animate: true
|
||||
text: Weather.feelsLike
|
||||
color: Config.colors.tertiary
|
||||
font.pointSize: Config.font.size.larger
|
||||
}
|
||||
}
|
||||
|
||||
CustomText {
|
||||
animate: true
|
||||
text: Weather.description
|
||||
color: Config.colors.secondary
|
||||
|
||||
elide: Text.ElideRight
|
||||
width: Math.min(implicitWidth, root.parent.width - icon.implicitWidth - info.anchors.leftMargin - 30)
|
||||
}
|
||||
|
||||
Item {
|
||||
implicitWidth: childrenRect.width
|
||||
implicitHeight: childrenRect.height
|
||||
|
||||
MaterialIcon {
|
||||
id: humidityIcon
|
||||
|
||||
animate: true
|
||||
text: Weather.humidityIcon
|
||||
color: Config.colors.primary
|
||||
font.pointSize: Config.font.size.normal
|
||||
|
||||
}
|
||||
|
||||
CustomText {
|
||||
anchors.left: humidityIcon.right
|
||||
anchors.verticalCenter: humidityIcon.verticalCenter
|
||||
anchors.leftMargin: 2
|
||||
|
||||
animate: true
|
||||
text: `${Math.round(Weather.humidity * 100)}% Humidity`
|
||||
color: Config.colors.primary
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue