dateMenu: Port to GWeather 4.0
Besides dropping its GTK dependency (which doesn't affect us), GWeather 4.0 replaces its own timezone type with GTimeZone. It's easy enough to adjust to that, so port over to the new version. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2083>
This commit is contained in:
parent
f07a40d5ee
commit
ab52ce4591
@ -31,7 +31,7 @@ variables:
|
|||||||
LINT_LOG: "eslint-report.xml"
|
LINT_LOG: "eslint-report.xml"
|
||||||
LINT_MR_LOG: "eslint-mr-report.xml"
|
LINT_MR_LOG: "eslint-mr-report.xml"
|
||||||
|
|
||||||
image: registry.gitlab.gnome.org/gnome/mutter/fedora/34:x86_64-2021-09-15.0
|
image: registry.gitlab.gnome.org/gnome/mutter/fedora/35:x86_64-2022-01-05.0
|
||||||
|
|
||||||
workflow:
|
workflow:
|
||||||
rules:
|
rules:
|
||||||
|
@ -339,9 +339,13 @@ class WorldClocksSection extends St.Button {
|
|||||||
this._locations.push({ location: l });
|
this._locations.push({ location: l });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const unixtime = GLib.DateTime.new_now_local().to_unix();
|
||||||
this._locations.sort((a, b) => {
|
this._locations.sort((a, b) => {
|
||||||
return a.location.get_timezone().get_offset() -
|
const tzA = a.location.get_timezone();
|
||||||
b.location.get_timezone().get_offset();
|
const tzB = b.location.get_timezone();
|
||||||
|
const intA = tzA.find_interval(GLib.TimeType.STANDARD, unixtime);
|
||||||
|
const intB = tzA.find_interval(GLib.TimeType.STANDARD, unixtime);
|
||||||
|
return tzA.get_offset(intA) - tzB.get_offset(intB);
|
||||||
});
|
});
|
||||||
|
|
||||||
let layout = this._grid.layout_manager;
|
let layout = this._grid.layout_manager;
|
||||||
@ -412,8 +416,9 @@ class WorldClocksSection extends St.Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_getTimezoneOffsetAtLocation(location) {
|
_getTimezoneOffsetAtLocation(location) {
|
||||||
|
const tz = location.get_timezone();
|
||||||
const localOffset = GLib.DateTime.new_now_local().get_utc_offset();
|
const localOffset = GLib.DateTime.new_now_local().get_utc_offset();
|
||||||
const utcOffset = this._getTimeAtLocation(location).get_utc_offset();
|
const utcOffset = GLib.DateTime.new_now(tz).get_utc_offset();
|
||||||
const offsetCurrentTz = utcOffset - localOffset;
|
const offsetCurrentTz = utcOffset - localOffset;
|
||||||
const offsetHours = Math.abs(offsetCurrentTz) / GLib.TIME_SPAN_HOUR;
|
const offsetHours = Math.abs(offsetCurrentTz) / GLib.TIME_SPAN_HOUR;
|
||||||
const offsetMinutes =
|
const offsetMinutes =
|
||||||
@ -427,15 +432,10 @@ class WorldClocksSection extends St.Button {
|
|||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
_getTimeAtLocation(location) {
|
|
||||||
let tz = GLib.TimeZone.new(location.get_timezone().get_tzid());
|
|
||||||
return GLib.DateTime.new_now(tz);
|
|
||||||
}
|
|
||||||
|
|
||||||
_updateTimeLabels() {
|
_updateTimeLabels() {
|
||||||
for (let i = 0; i < this._locations.length; i++) {
|
for (let i = 0; i < this._locations.length; i++) {
|
||||||
let l = this._locations[i];
|
let l = this._locations[i];
|
||||||
let now = this._getTimeAtLocation(l.location);
|
const now = GLib.DateTime.new_now(l.location.get_timezone());
|
||||||
l.timeLabel.text = Util.formatTime(now, { timeOnly: true });
|
l.timeLabel.text = Util.formatTime(now, { timeOnly: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ imports.gi.versions.GdkPixbuf = '2.0';
|
|||||||
imports.gi.versions.GnomeBluetooth = '1.0';
|
imports.gi.versions.GnomeBluetooth = '1.0';
|
||||||
imports.gi.versions.GnomeDesktop = '3.0';
|
imports.gi.versions.GnomeDesktop = '3.0';
|
||||||
imports.gi.versions.Gtk = '3.0';
|
imports.gi.versions.Gtk = '3.0';
|
||||||
imports.gi.versions.GWeather = '3.0';
|
imports.gi.versions.GWeather = '4.0';
|
||||||
imports.gi.versions.Soup = '3.0';
|
imports.gi.versions.Soup = '3.0';
|
||||||
imports.gi.versions.TelepathyGLib = '0.12';
|
imports.gi.versions.TelepathyGLib = '0.12';
|
||||||
imports.gi.versions.TelepathyLogger = '0.2';
|
imports.gi.versions.TelepathyLogger = '0.2';
|
||||||
|
Loading…
Reference in New Issue
Block a user