Weather: change how default city is set

This commit is contained in:
Ly-sec 2025-09-03 13:50:16 +02:00
parent c6e56d4264
commit 40b57c2df0
4 changed files with 12 additions and 12 deletions

View file

@ -25,6 +25,7 @@ Singleton {
property string defaultAvatar: Quickshell.env("HOME") + "/.face" property string defaultAvatar: Quickshell.env("HOME") + "/.face"
property string defaultWallpapersDirectory: Quickshell.env("HOME") + "/Pictures/Wallpapers" property string defaultWallpapersDirectory: Quickshell.env("HOME") + "/Pictures/Wallpapers"
property string defaultVideosDirectory: Quickshell.env("HOME") + "/Videos" property string defaultVideosDirectory: Quickshell.env("HOME") + "/Videos"
property string defaultLocation: "Tokyo"
// Used to access via Settings.data.xxx.yyy // Used to access via Settings.data.xxx.yyy
readonly property alias data: adapter readonly property alias data: adapter
@ -157,7 +158,7 @@ Singleton {
// location // location
property JsonObject location: JsonObject { property JsonObject location: JsonObject {
property string name: "Tokyo" property string name: defaultLocation
property bool useFahrenheit: false property bool useFahrenheit: false
property bool reverseDayMonth: false property bool reverseDayMonth: false
property bool use12HourClock: false property bool use12HourClock: false

View file

@ -16,11 +16,16 @@ ColumnLayout {
NTextInput { NTextInput {
label: "Location name" label: "Location name"
description: "Choose a known location near you." description: "Choose a known location near you."
text: Settings.data.location.name || "Tokyo" text: Settings.data.location.name || Settings.defaultLocation
placeholderText: "Enter the location name" placeholderText: "Enter the location name"
onEditingFinished: { onEditingFinished: {
// Verify the location has really changed to avoid extra resets // Verify the location has really changed to avoid extra resets
var newLocation = text.trim() var newLocation = text.trim()
// If empty, set to default location
if (newLocation === "") {
newLocation = Settings.defaultLocation
text = Settings.defaultLocation // Update the input field to show the default
}
if (newLocation != Settings.data.location.name) { if (newLocation != Settings.data.location.name) {
Settings.data.location.name = newLocation Settings.data.location.name = newLocation
LocationService.resetWeather() LocationService.resetWeather()

View file

@ -37,10 +37,8 @@ NBox {
spacing: Style.marginXXS * scaling spacing: Style.marginXXS * scaling
NText { NText {
text: { text: {
// Use the location name or fallback to default if empty
const locationName = Settings.data.location.name || "Tokyo"
// Ensure the name is not too long if one had to specify the country // Ensure the name is not too long if one had to specify the country
const chunks = locationName.split(",") const chunks = Settings.data.location.name.split(",")
return chunks[0] return chunks[0]
} }
font.pointSize: Style.fontSizeL * scaling font.pointSize: Style.fontSizeL * scaling

View file

@ -136,17 +136,13 @@ Singleton {
Logger.log("Location", "Location changed from", adapter.name, "to", Settings.data.location.name) Logger.log("Location", "Location changed from", adapter.name, "to", Settings.data.location.name)
} }
// Ensure we always have a location name, fallback to default if empty
const locationName = Settings.data.location.name && Settings.data.location.name.trim(
) !== "" ? Settings.data.location.name : "Tokyo"
if ((adapter.latitude === "") || (adapter.longitude === "") || locationChanged) { if ((adapter.latitude === "") || (adapter.longitude === "") || locationChanged) {
_geocodeLocation(locationName, function (latitude, longitude, name, country) { _geocodeLocation(Settings.data.location.name, function (latitude, longitude, name, country) {
Logger.log("Location", "Geocoded", locationName, "to:", latitude, "/", longitude) Logger.log("Location", "Geocoded", Settings.data.location.name, "to:", latitude, "/", longitude)
// Save location name // Save location name
adapter.name = locationName adapter.name = Settings.data.location.name
// Save GPS coordinates // Save GPS coordinates
adapter.latitude = latitude.toString() adapter.latitude = latitude.toString()