From 86c5b69f18356201db5c3a314f36e0f68e74c357 Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Thu, 14 Mar 2024 22:35:55 +0000 Subject: [PATCH 1/3] refactor(tray): tidy imports --- src/modules/tray/icon.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/tray/icon.rs b/src/modules/tray/icon.rs index 850137f6..55f09fc4 100644 --- a/src/modules/tray/icon.rs +++ b/src/modules/tray/icon.rs @@ -1,9 +1,9 @@ use glib::ffi::g_strfreev; use glib::translate::ToGlibPtr; use gtk::ffi::gtk_icon_theme_get_search_path; -use gtk::gdk_pixbuf::{Colorspace, InterpType}; +use gtk::gdk_pixbuf::{Colorspace, InterpType, Pixbuf}; use gtk::prelude::IconThemeExt; -use gtk::{gdk_pixbuf, IconLookupFlags, IconTheme, Image}; +use gtk::{IconLookupFlags, IconTheme, Image}; use std::collections::HashSet; use std::ffi::CStr; use std::os::raw::{c_char, c_int}; @@ -69,7 +69,7 @@ pub(crate) fn get_image_from_pixmap(item: &StatusNotifierItem) -> Option let bytes = glib::Bytes::from(&pixmap.pixels); let row_stride = pixmap.width * 4; // - let pixbuf = gdk_pixbuf::Pixbuf::from_bytes( + let pixbuf = Pixbuf::from_bytes( &bytes, Colorspace::Rgb, true, From 00a6a84ca6af6f3c64183ec08fdff7430770d39b Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Thu, 14 Mar 2024 22:36:20 +0000 Subject: [PATCH 2/3] refactor(upower): cheaper string building --- src/modules/upower.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/upower.rs b/src/modules/upower.rs index 0019a65f..f2b976a2 100644 --- a/src/modules/upower.rs +++ b/src/modules/upower.rs @@ -199,7 +199,9 @@ impl Module for UpowerModule { let format = format.replace("{percentage}", &properties.percentage.to_string()) .replace("{time_remaining}", &time_remaining) .replace("{state}", battery_state_to_string(state)); - let icon_name = String::from("icon:") + &properties.icon_name; + + let mut icon_name = String::from("icon:"); + icon_name.push_str(&properties.icon_name); ImageProvider::parse(&icon_name, &icon_theme, false, self.icon_size) .map(|provider| provider.load_into_image(icon.clone())); From b912619d61a74921c854ea6464e0922e5c107a27 Mon Sep 17 00:00:00 2001 From: Jake Stanger Date: Thu, 14 Mar 2024 22:36:30 +0000 Subject: [PATCH 3/3] refactor(image): add debug logging --- src/image/provider.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/image/provider.rs b/src/image/provider.rs index a23debfe..6003a14c 100644 --- a/src/image/provider.rs +++ b/src/image/provider.rs @@ -11,7 +11,7 @@ use gtk::{IconLookupFlags, IconTheme}; use std::path::{Path, PathBuf}; #[cfg(feature = "http")] use tokio::sync::mpsc; -use tracing::warn; +use tracing::{debug, warn}; cfg_if!( if #[cfg(feature = "http")] { @@ -45,6 +45,7 @@ impl<'a> ImageProvider<'a> { /// but no other check is performed. pub fn parse(input: &str, theme: &'a IconTheme, use_fallback: bool, size: i32) -> Option { let location = Self::get_location(input, theme, size, use_fallback, 0)?; + debug!("Resolved {input} --> {location:?} (size: {size})"); Some(Self { location, size }) }