summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml206
1 files changed, 0 insertions, 206 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml
deleted file mode 100644
index 5c57b65..0000000
--- a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankDash/WeatherForecastCard.qml
+++ /dev/null
@@ -1,206 +0,0 @@
-import QtQuick
-import qs.Common
-import qs.Services
-import qs.Widgets
-
-Rectangle {
- id: root
- radius: Theme.cornerRadius
-
- property var date: null
- property var daily: true
- property var forecastData: null
- property var dense: false
-
- readonly property bool isCurrent: {
- if (daily) {
- date ? WeatherService.calendarDayDifference(new Date(), date) === 0 : false;
- } else {
- date ? WeatherService.calendarHourDifference(new Date(), date) === 0 : false;
- }
- }
-
- readonly property string dateText: {
- if (daily)
- return root.forecastData?.day ?? "--";
- if (!root.forecastData?.rawTime)
- return root.forecastData?.time ?? "--";
- try {
- const date = new Date(root.forecastData.rawTime);
- const format = SettingsData.use24HourClock ? "HH:mm" : "h:mm AP";
- return date.toLocaleTimeString(Qt.locale(), format);
- } catch (e) {
- return root.forecastData?.time ?? "--";
- }
- }
-
- readonly property var minTemp: WeatherService.formatTemp(root.forecastData?.tempMin)
- readonly property var maxTemp: WeatherService.formatTemp(root.forecastData?.tempMax)
- readonly property string minMaxTempText: (minTemp ?? "--") + "/" + (maxTemp ?? "--")
-
- readonly property var temp: WeatherService.formatTemp(root.forecastData?.temp)
- readonly property string tempText: temp ?? "--"
-
- readonly property var feelsLikeTemp: WeatherService.formatTemp(root.forecastData?.feelsLike)
- readonly property string feelsLikeText: feelsLikeTemp ?? "--"
-
- readonly property var humidity: WeatherService.formatPercent(root.forecastData?.humidity)
- readonly property string humidityText: humidity ?? "--"
-
- readonly property var wind: {
- SettingsData.windSpeedUnit;
- SettingsData.useFahrenheit;
- return WeatherService.formatSpeed(root.forecastData?.wind);
- }
- readonly property string windText: wind ?? "--"
-
- readonly property var pressure: {
- SettingsData.useFahrenheit;
- return WeatherService.formatPressure(root.forecastData?.pressure);
- }
- readonly property string pressureText: pressure ?? "--"
-
- readonly property var precipitation: root.forecastData?.precipitationProbability
- readonly property string precipitationText: precipitation + "%" ?? "--"
-
- readonly property var visibility: WeatherService.formatVisibility(root.forecastData?.visibility)
- readonly property string visibilityText: visibility ?? "--"
-
- readonly property var values: daily ? [] : [
- {
- "name"// 'name': "Temperature",
- :
- // 'text': root.tempText,
- // 'icon': "thermometer"
- // }, {
- // 'name': "Feels Like",
- // 'text': root.feelsLikeText,
- // 'icon': "thermostat"
- // }, {
- I18n.tr("Humidity"),
- "text": root.humidityText,
- "icon": "humidity_low"
- },
- {
- "name": I18n.tr("Wind Speed"),
- "text": root.windText,
- "icon": "air"
- },
- {
- "name": I18n.tr("Pressure"),
- "text": root.pressureText,
- "icon": "speed"
- },
- {
- "name": I18n.tr("Precipitation Chance"),
- "text": root.precipitationText,
- "icon": "rainy"
- },
- {
- "name": I18n.tr("Visibility"),
- "text": root.visibilityText,
- "icon": "wb_sunny"
- }
- ]
-
- color: isCurrent ? Theme.withAlpha(Theme.primary, 0.1) : Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
- border.color: isCurrent ? Theme.withAlpha(Theme.primary, 0.3) : "transparent"
- border.width: isCurrent ? 1 : 0
-
- Column {
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- StyledText {
- text: root.forecastData != null ? root.dateText : I18n.tr("Forecast Not Available")
- font.pixelSize: Theme.fontSizeSmall
- color: root.isCurrent ? Theme.primary : (root.forecastData ? Theme.surfaceText : Theme.outline)
- font.weight: root.isCurrent ? Font.Medium : Font.Normal
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- Row {
- anchors.horizontalCenter: parent.horizontalCenter
- spacing: Theme.spacingM
- visible: root.forecastData != null
-
- Column {
- spacing: Theme.spacingXS
-
- DankIcon {
- name: root.forecastData ? WeatherService.getWeatherIcon(root.forecastData.wCode || 0, root.forecastData.isDay ?? true) : "cloud"
- size: Theme.iconSize
- color: root.isCurrent ? Theme.primary : Theme.withAlpha(Theme.primary, 0.8)
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: root.daily ? root.minMaxTempText : root.tempText
- font.pixelSize: Theme.fontSizeSmall
- color: root.isCurrent ? Theme.primary : Theme.surfaceText
- font.weight: Font.Medium
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- StyledText {
- text: root.feelsLikeText
- font.pixelSize: Theme.fontSizeSmall
- color: root.isCurrent ? Theme.primary : Theme.surfaceText
- font.weight: Font.Medium
- anchors.horizontalCenter: parent.horizontalCenter
- visible: !root.daily
- }
- }
-
- Column {
- id: detailsColumn
- spacing: 2
- visible: !root.dense
- width: implicitWidth
-
- states: [
- State {
- name: "dense"
- when: root.dense
- PropertyChanges {
- target: detailsColumn
- opacity: 0
- width: 0
- }
- }
- ]
-
- transitions: [
- Transition {
- NumberAnimation {
- properties: "opacity,width"
- duration: Theme.shortDuration
- easing.type: Theme.standardEasing
- }
- }
- ]
-
- Repeater {
- model: root.values.length
- Row {
- spacing: 2
-
- DankIcon {
- name: root.values[index].icon
- size: 8
- color: Theme.withAlpha(Theme.surfaceText, 0.6)
- anchors.verticalCenter: parent.verticalCenter
- }
-
- StyledText {
- text: root.values[index].text
- font.pixelSize: Theme.fontSizeSmall - 2
- color: Theme.withAlpha(Theme.surfaceText, 0.6)
- anchors.verticalCenter: parent.verticalCenter
- }
- }
- }
- }
- }
- }
-}