refactor: use jiff instead of time
This commit is contained in:
parent
2ca99c670a
commit
89a50197d2
4 changed files with 8 additions and 39 deletions
13
Cargo.lock
generated
13
Cargo.lock
generated
|
|
@ -847,6 +847,7 @@ dependencies = [
|
||||||
"iced_tiny_skia",
|
"iced_tiny_skia",
|
||||||
"id_tree",
|
"id_tree",
|
||||||
"indexmap 2.13.0",
|
"indexmap 2.13.0",
|
||||||
|
"jiff",
|
||||||
"keyframe",
|
"keyframe",
|
||||||
"libcosmic",
|
"libcosmic",
|
||||||
"libdisplay-info",
|
"libdisplay-info",
|
||||||
|
|
@ -868,7 +869,6 @@ dependencies = [
|
||||||
"smithay",
|
"smithay",
|
||||||
"smithay-egui",
|
"smithay-egui",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"time",
|
|
||||||
"tiny-skia",
|
"tiny-skia",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-journald",
|
"tracing-journald",
|
||||||
|
|
@ -3537,15 +3537,6 @@ dependencies = [
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num_threads"
|
|
||||||
version = "0.1.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "objc"
|
name = "objc"
|
||||||
version = "0.2.7"
|
version = "0.2.7"
|
||||||
|
|
@ -5322,9 +5313,7 @@ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
"itoa",
|
"itoa",
|
||||||
"libc",
|
|
||||||
"num-conv",
|
"num-conv",
|
||||||
"num_threads",
|
|
||||||
"powerfmt",
|
"powerfmt",
|
||||||
"serde_core",
|
"serde_core",
|
||||||
"time-core",
|
"time-core",
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,7 @@ sanitize-filename = "0.6.0"
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
serde_json = "1"
|
serde_json = "1"
|
||||||
thiserror = "2.0.18"
|
thiserror = "2.0.18"
|
||||||
time = { version = "0.3.47", features = [
|
jiff = "0.2"
|
||||||
"macros",
|
|
||||||
"formatting",
|
|
||||||
"local-offset",
|
|
||||||
] }
|
|
||||||
tiny-skia = "0.11"
|
tiny-skia = "0.11"
|
||||||
tracing = { version = "0.1.44", features = [
|
tracing = { version = "0.1.44", features = [
|
||||||
"max_level_debug",
|
"max_level_debug",
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,6 @@ use smithay::{
|
||||||
},
|
},
|
||||||
xwayland::XWaylandClientData,
|
xwayland::XWaylandClientData,
|
||||||
};
|
};
|
||||||
use time::UtcOffset;
|
|
||||||
use tracing::warn;
|
use tracing::warn;
|
||||||
|
|
||||||
#[cfg(feature = "systemd")]
|
#[cfg(feature = "systemd")]
|
||||||
|
|
@ -242,7 +241,7 @@ pub struct Common {
|
||||||
pub clock: Clock<Monotonic>,
|
pub clock: Clock<Monotonic>,
|
||||||
pub startup_done: Arc<AtomicBool>,
|
pub startup_done: Arc<AtomicBool>,
|
||||||
pub should_stop: bool,
|
pub should_stop: bool,
|
||||||
pub local_offset: time::UtcOffset,
|
|
||||||
pub gesture_state: Option<GestureState>,
|
pub gesture_state: Option<GestureState>,
|
||||||
|
|
||||||
pub kiosk_child: Option<Child>,
|
pub kiosk_child: Option<Child>,
|
||||||
|
|
@ -635,7 +634,6 @@ impl State {
|
||||||
.with_context(|| "Failed to load languages")
|
.with_context(|| "Failed to load languages")
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let local_offset = UtcOffset::current_local_offset().expect("No yet multithreaded");
|
|
||||||
let clock = Clock::new();
|
let clock = Clock::new();
|
||||||
let config = Config::load(&handle);
|
let config = Config::load(&handle);
|
||||||
let compositor_state = CompositorState::new::<Self>(dh);
|
let compositor_state = CompositorState::new::<Self>(dh);
|
||||||
|
|
@ -749,8 +747,6 @@ impl State {
|
||||||
popups: PopupManager::default(),
|
popups: PopupManager::default(),
|
||||||
shell,
|
shell,
|
||||||
|
|
||||||
local_offset,
|
|
||||||
|
|
||||||
clock,
|
clock,
|
||||||
startup_done: Arc::new(AtomicBool::new(false)),
|
startup_done: Arc::new(AtomicBool::new(false)),
|
||||||
should_stop: false,
|
should_stop: false,
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,7 @@ use crate::{
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) {
|
pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) {
|
||||||
fn render_window<R>(
|
fn render_window<R>(renderer: &mut R, window: &CosmicSurface) -> anyhow::Result<()>
|
||||||
renderer: &mut R,
|
|
||||||
window: &CosmicSurface,
|
|
||||||
offset: &time::UtcOffset,
|
|
||||||
) -> anyhow::Result<()>
|
|
||||||
where
|
where
|
||||||
R: Renderer + ImportAll + Offscreen<GlesRenderbuffer> + ExportMem,
|
R: Renderer + ImportAll + Offscreen<GlesRenderbuffer> + ExportMem,
|
||||||
R::TextureId: Clone + 'static,
|
R::TextureId: Clone + 'static,
|
||||||
|
|
@ -65,17 +61,13 @@ pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) {
|
||||||
let gl_data = renderer.map_texture(&mapping)?;
|
let gl_data = renderer.map_texture(&mapping)?;
|
||||||
|
|
||||||
if let Ok(Some(path)) = xdg_user::pictures() {
|
if let Ok(Some(path)) = xdg_user::pictures() {
|
||||||
let local_timestamp = time::OffsetDateTime::now_utc().to_offset(*offset);
|
let local_timestamp = jiff::Zoned::now();
|
||||||
let mut title = window.title();
|
let mut title = window.title();
|
||||||
title.truncate(227); // 255 - time - png
|
title.truncate(227); // 255 - time - png
|
||||||
let name = sanitize_filename::sanitize(format!(
|
let name = sanitize_filename::sanitize(format!(
|
||||||
"{}_{}.png",
|
"{}_{}.png",
|
||||||
title,
|
title,
|
||||||
local_timestamp
|
local_timestamp.strftime("%Y-%m-%d_%H:%M:%S_%4f"),
|
||||||
.format(time::macros::format_description!(
|
|
||||||
"[year]-[month]-[day]_[hour]:[minute]:[second]_[subsecond digits:4]"
|
|
||||||
))
|
|
||||||
.unwrap(),
|
|
||||||
));
|
));
|
||||||
let file = std::fs::File::create(path.join(name))?;
|
let file = std::fs::File::create(path.join(name))?;
|
||||||
|
|
||||||
|
|
@ -108,12 +100,8 @@ pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) {
|
||||||
})
|
})
|
||||||
.with_context(|| "Failed to get renderer for screenshot")
|
.with_context(|| "Failed to get renderer for screenshot")
|
||||||
.and_then(|renderer| match renderer {
|
.and_then(|renderer| match renderer {
|
||||||
RendererRef::Glow(renderer) => {
|
RendererRef::Glow(renderer) => render_window(renderer, surface),
|
||||||
render_window(renderer, surface, &state.common.local_offset)
|
RendererRef::GlMulti(mut renderer) => render_window(&mut renderer, surface),
|
||||||
}
|
|
||||||
RendererRef::GlMulti(mut renderer) => {
|
|
||||||
render_window(&mut renderer, surface, &state.common.local_offset)
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
if let Err(err) = res {
|
if let Err(err) = res {
|
||||||
warn!(?err, "Failed to take screenshot")
|
warn!(?err, "Failed to take screenshot")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue