linux: Implement local time zone support (#14610)

I decided to remove the GPUI APIs since `chrono` already provides this
functionality, and is already been used for this purpose in other parts
of the code (e.g.
[here](80402a6840/crates/zed/src/main.rs (L756))
or
[here](80402a6840/crates/ui/src/utils/format_distance.rs (L258)))

These usages end up calling the `time_format` crate, which takes in a
`UtcOffset`. It's probably cleaner to rewrite the crate to take in
`chrono` types, but that would require rewriting most of the code there.

Release Notes:

- linux: Use local time zone in chat and Git blame
This commit is contained in:
apricotbucket28 2024-07-18 08:42:18 -03:00 committed by GitHub
parent 22a2cc6950
commit 013c9f0420
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 26 additions and 72 deletions

View file

@ -32,6 +32,7 @@ test-support = [
anyhow.workspace = true
call.workspace = true
channel.workspace = true
chrono.workspace = true
client.workspace = true
collections.workspace = true
db.workspace = true

View file

@ -111,6 +111,7 @@ impl ChatPanel {
this.is_scrolled_to_bottom = !event.is_scrolled;
}));
let local_offset = chrono::Local::now().offset().local_minus_utc();
let mut this = Self {
fs,
client,
@ -120,7 +121,7 @@ impl ChatPanel {
active_chat: Default::default(),
pending_serialization: Task::ready(None),
message_editor: input_editor,
local_timezone: cx.local_timezone(),
local_timezone: UtcOffset::from_whole_seconds(local_offset).unwrap(),
subscriptions: Vec::new(),
is_scrolled_to_bottom: true,
active: false,

View file

@ -127,11 +127,12 @@ impl NotificationPanel {
},
));
let local_offset = chrono::Local::now().offset().local_minus_utc();
let mut this = Self {
fs,
client,
user_store,
local_timezone: cx.local_timezone(),
local_timezone: UtcOffset::from_whole_seconds(local_offset).unwrap(),
channel_store: ChannelStore::global(cx),
notification_store: NotificationStore::global(cx),
notification_list,