Weather: change how default city is set
This commit is contained in:
parent
c6e56d4264
commit
40b57c2df0
4 changed files with 12 additions and 12 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue