From ce8314e6ab99b7293b9de2bb6324ec89fa644315 Mon Sep 17 00:00:00 2001 From: nokyan Date: Tue, 2 Jul 2024 21:41:37 +0200 Subject: [PATCH 1/8] Capitalization updates --- data/resources/ui/pages/applications.ui | 4 ++-- data/resources/ui/pages/processes.ui | 4 ++-- src/ui/pages/applications/mod.rs | 8 ++++---- src/ui/pages/processes/mod.rs | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/data/resources/ui/pages/applications.ui b/data/resources/ui/pages/applications.ui index bef08351..81af96e3 100644 --- a/data/resources/ui/pages/applications.ui +++ b/data/resources/ui/pages/applications.ui @@ -65,7 +65,7 @@ search-symbolic - Toggle search field + Search Toggle search field @@ -83,7 +83,7 @@ info-symbolic false - Show app information + Show App Information Show app information diff --git a/data/resources/ui/pages/processes.ui b/data/resources/ui/pages/processes.ui index 860a6880..297f99cb 100644 --- a/data/resources/ui/pages/processes.ui +++ b/data/resources/ui/pages/processes.ui @@ -65,7 +65,7 @@ search-symbolic - Toggle search field + Search Toggle search field @@ -83,7 +83,7 @@ info-symbolic false - Show process information + Show Process Information Show process information diff --git a/src/ui/pages/applications/mod.rs b/src/ui/pages/applications/mod.rs index 6eb192f0..ddb48039 100644 --- a/src/ui/pages/applications/mod.rs +++ b/src/ui/pages/applications/mod.rs @@ -1158,9 +1158,9 @@ fn get_app_action_warning(action: ProcessAction) -> String { fn get_app_action_description(action: ProcessAction) -> String { match action { - ProcessAction::TERM => i18n("End app"), - ProcessAction::STOP => i18n("Halt app"), - ProcessAction::KILL => i18n("Kill app"), - ProcessAction::CONT => i18n("Continue app"), + ProcessAction::TERM => i18n("End App"), + ProcessAction::STOP => i18n("Halt App"), + ProcessAction::KILL => i18n("Kill App"), + ProcessAction::CONT => i18n("Continue App"), } } diff --git a/src/ui/pages/processes/mod.rs b/src/ui/pages/processes/mod.rs index 5a5b8f2d..ff1b1e29 100644 --- a/src/ui/pages/processes/mod.rs +++ b/src/ui/pages/processes/mod.rs @@ -1369,9 +1369,9 @@ fn get_process_action_warning(action: ProcessAction) -> String { fn get_process_action_description(action: ProcessAction) -> String { match action { - ProcessAction::TERM => i18n("End process"), - ProcessAction::STOP => i18n("Halt process"), - ProcessAction::KILL => i18n("Kill process"), - ProcessAction::CONT => i18n("Continue process"), + ProcessAction::TERM => i18n("End Process"), + ProcessAction::STOP => i18n("Halt Process"), + ProcessAction::KILL => i18n("Kill Process"), + ProcessAction::CONT => i18n("Continue Process"), } } From a7f8ec1f5422b2a4ff2a85db703a918b1bcd36cd Mon Sep 17 00:00:00 2001 From: nokyan Date: Tue, 2 Jul 2024 23:01:12 +0200 Subject: [PATCH 2/8] Put symbolic icons in the Applications view into bubbles --- data/resources/style.css | 9 +++- .../pages/applications/application_entry.rs | 50 ++++++++++++++----- .../applications/application_name_cell.rs | 36 +++++++------ src/ui/pages/applications/mod.rs | 4 ++ src/ui/pages/processes/process_entry.rs | 20 +++----- src/ui/pages/processes/process_name_cell.rs | 31 ++++-------- src/ui/widgets/stack_sidebar_item.rs | 31 ++++-------- 7 files changed, 99 insertions(+), 82 deletions(-) diff --git a/data/resources/style.css b/data/resources/style.css index 0730a433..82a93c3f 100644 --- a/data/resources/style.css +++ b/data/resources/style.css @@ -4,4 +4,11 @@ progressbar.slim > trough, progressbar.slim > trough > progress { .resources-columnview { background-color: @window_bg_color; -} \ No newline at end of file +} + +.bubble { + background-color: alpha(currentColor, 0.08); + min-width: 32px; + min-height: 32px; + border-radius: 50%; +} diff --git a/src/ui/pages/applications/application_entry.rs b/src/ui/pages/applications/application_entry.rs index bb517f9b..4f373f9b 100644 --- a/src/ui/pages/applications/application_entry.rs +++ b/src/ui/pages/applications/application_entry.rs @@ -8,6 +8,7 @@ use crate::utils::app::AppItem; mod imp { use std::cell::{Cell, RefCell}; + use glib::object::Cast; use gtk::{ gio::{Icon, ThemedIcon}, glib::{ParamSpec, Properties, Value}, @@ -62,6 +63,11 @@ mod imp { #[property(get, set)] gpu_mem_usage: Cell, + // TODO: Make this properly dynamic, don't use a variable that's never read + #[property(get = Self::symbolic)] + #[allow(dead_code)] + symbolic: Cell, + pub app_item: RefCell>, } @@ -83,6 +89,7 @@ mod imp { enc_usage: Cell::new(0.0), dec_usage: Cell::new(0.0), gpu_mem_usage: Cell::new(0), + symbolic: Cell::new(false), } } } @@ -90,9 +97,8 @@ mod imp { impl ApplicationEntry { pub fn name(&self) -> glib::GString { let name = self.name.take(); - let result = name.clone(); - self.name.set(name); - result + self.name.set(name.clone()); + name } pub fn set_name(&self, name: &str) { @@ -101,9 +107,8 @@ mod imp { pub fn description(&self) -> Option { let description = self.description.take(); - let result = description.clone(); - self.description.set(description); - result + self.description.set(description.clone()); + description } pub fn set_description(&self, description: Option<&str>) { @@ -112,9 +117,8 @@ mod imp { pub fn id(&self) -> Option { let id = self.id.take(); - let result = id.clone(); - self.id.set(id); - result + self.id.set(id.clone()); + id } pub fn set_id(&self, id: Option<&str>) { @@ -123,14 +127,36 @@ mod imp { pub fn icon(&self) -> Icon { let icon = self.icon.replace(ThemedIcon::new("generic-process").into()); - let result = icon.clone(); - self.icon.set(icon); - result + self.icon.set(icon.clone()); + icon } pub fn set_icon(&self, icon: &Icon) { self.icon.set(icon.clone()); } + + pub fn symbolic(&self) -> bool { + let id = self.id.take(); + self.id.set(id.clone()); + + let icon = self.icon.replace(ThemedIcon::new("generic-process").into()); + self.icon.set(icon.clone()); + + id.is_none() // this will be the case for System Processes + || icon + .downcast_ref::() + .map(|themed_icon| { + themed_icon + .names() + .iter() + .all(|name| name.ends_with("-symbolic")) + || themed_icon + .names() + .iter() + .all(|name| name.contains("generic-process")) + }) + .unwrap_or(false) + } } #[glib::object_subclass] diff --git a/src/ui/pages/applications/application_name_cell.rs b/src/ui/pages/applications/application_name_cell.rs index 39952f80..f5d8fc1b 100644 --- a/src/ui/pages/applications/application_name_cell.rs +++ b/src/ui/pages/applications/application_name_cell.rs @@ -27,6 +27,8 @@ mod imp { tooltip: Cell, #[property(get = Self::icon, set = Self::set_icon, type = Icon)] icon: RefCell, + #[property(get, set = Self::set_symbolic)] + symbolic: Cell, } impl Default for ResApplicationNameCell { @@ -37,6 +39,7 @@ mod imp { name: Default::default(), tooltip: Default::default(), icon: RefCell::new(ThemedIcon::new("generic-process").into()), + symbolic: Default::default(), } } } @@ -51,17 +54,12 @@ mod imp { } pub fn set_name(&self, name: &str) { - let current_name = self.name.take(); - if current_name.as_str() == name { - self.name.set(current_name); - return; - } self.name.set(glib::GString::from(name)); self.inscription.set_text(Some(name)); } pub fn tooltip(&self) -> glib::GString { - let tooltip = self.name.take(); + let tooltip = self.tooltip.take(); let result = tooltip.clone(); self.tooltip.set(tooltip); @@ -69,12 +67,6 @@ mod imp { } pub fn set_tooltip(&self, tooltip: &str) { - let current_tooltip = self.name.take(); - if current_tooltip.as_str() == tooltip { - self.name.set(current_tooltip); - return; - } - self.tooltip.set(glib::GString::from(tooltip)); self.inscription.set_tooltip_text(Some(tooltip)); } @@ -83,23 +75,37 @@ mod imp { let icon = self .icon .replace_with(|_| ThemedIcon::new("generic-process").into()); - let result = icon.clone(); - self.icon.set(icon); + self.icon.set(icon.clone()); - result + icon } pub fn set_icon(&self, icon: &Icon) { let current_icon = self .icon .replace_with(|_| ThemedIcon::new("generic-process").into()); + if ¤t_icon == icon { self.icon.set(current_icon); return; } + self.image.set_gicon(Some(icon)); + self.icon.set(icon.clone()); } + + pub fn set_symbolic(&self, symbolic: bool) { + self.symbolic.set(symbolic); + + if symbolic { + self.image.set_css_classes(&["bubble"]); + self.image.set_pixel_size(16); + } else { + self.image.set_css_classes(&["lowres-icon"]); + self.image.set_pixel_size(32); + } + } } #[glib::object_subclass] diff --git a/src/ui/pages/applications/mod.rs b/src/ui/pages/applications/mod.rs index ddb48039..703e5308 100644 --- a/src/ui/pages/applications/mod.rs +++ b/src/ui/pages/applications/mod.rs @@ -641,6 +641,10 @@ impl ResApplications { item.property_expression("item") .chain_property::("icon") .bind(&row, "icon", Widget::NONE); + + item.property_expression("item") + .chain_property::("symbolic") + .bind(&row, "symbolic", Widget::NONE); }); let name_col_sorter = StringSorter::builder() diff --git a/src/ui/pages/processes/process_entry.rs b/src/ui/pages/processes/process_entry.rs index e90895ab..9ed2466a 100644 --- a/src/ui/pages/processes/process_entry.rs +++ b/src/ui/pages/processes/process_entry.rs @@ -106,9 +106,8 @@ mod imp { impl ProcessEntry { pub fn name(&self) -> glib::GString { let name = self.name.take(); - let result = name.clone(); - self.name.set(name); - result + self.name.set(name.clone()); + name } pub fn set_name(&self, name: &str) { @@ -117,9 +116,8 @@ mod imp { pub fn commandline(&self) -> glib::GString { let commandline = self.commandline.take(); - let result = commandline.clone(); - self.commandline.set(commandline); - result + self.commandline.set(commandline.clone()); + commandline } pub fn set_commandline(&self, commandline: &str) { @@ -128,9 +126,8 @@ mod imp { pub fn user(&self) -> glib::GString { let user = self.user.take(); - let result = user.clone(); - self.user.set(user); - result + self.user.set(user.clone()); + user } pub fn set_user(&self, user: &str) { @@ -139,9 +136,8 @@ mod imp { pub fn icon(&self) -> Icon { let icon = self.icon.replace(ThemedIcon::new("generic-process").into()); - let result = icon.clone(); - self.icon.set(icon); - result + self.icon.set(icon.clone()); + icon } pub fn set_icon(&self, icon: &Icon) { diff --git a/src/ui/pages/processes/process_name_cell.rs b/src/ui/pages/processes/process_name_cell.rs index d9690048..a4ed6252 100644 --- a/src/ui/pages/processes/process_name_cell.rs +++ b/src/ui/pages/processes/process_name_cell.rs @@ -44,36 +44,22 @@ mod imp { impl ResProcessNameCell { pub fn name(&self) -> glib::GString { let name = self.name.take(); - let result = name.clone(); - self.name.set(name); - - result + self.name.set(name.clone()); + name } pub fn set_name(&self, name: &str) { - let current_name = self.name.take(); - if current_name.as_str() == name { - self.name.set(current_name); - return; - } self.name.set(glib::GString::from(name)); self.inscription.set_text(Some(name)); } pub fn tooltip(&self) -> glib::GString { let tooltip = self.tooltip.take(); - let result = tooltip.clone(); - self.tooltip.set(tooltip); - - result + self.tooltip.set(tooltip.clone()); + tooltip } pub fn set_tooltip(&self, tooltip: &str) { - let current_tooltip = self.tooltip.take(); - if current_tooltip.as_str() == tooltip { - self.tooltip.set(current_tooltip); - return; - } self.tooltip.set(glib::GString::from(tooltip)); self.inscription.set_tooltip_text(Some(tooltip)); } @@ -82,21 +68,22 @@ mod imp { let icon = self .icon .replace_with(|_| ThemedIcon::new("generic-process").into()); - let result = icon.clone(); - self.icon.set(icon); - - result + self.icon.set(icon.clone()); + icon } pub fn set_icon(&self, icon: &Icon) { let current_icon = self .icon .replace_with(|_| ThemedIcon::new("generic-process").into()); + if ¤t_icon == icon { self.icon.set(current_icon); return; } + self.image.set_gicon(Some(icon)); + self.icon.set(icon.clone()); } } diff --git a/src/ui/widgets/stack_sidebar_item.rs b/src/ui/widgets/stack_sidebar_item.rs index 9f4af5a4..ebeae435 100644 --- a/src/ui/widgets/stack_sidebar_item.rs +++ b/src/ui/widgets/stack_sidebar_item.rs @@ -53,10 +53,8 @@ mod imp { impl ResStackSidebarItem { pub fn name(&self) -> glib::GString { let name = self.name.take(); - let result = name.clone(); - self.name.set(name); - - result + self.name.set(name.clone()); + name } pub fn set_name(&self, name: &str) { @@ -70,11 +68,9 @@ mod imp { } pub fn subtitle(&self) -> glib::GString { - let usage_string = self.subtitle.take(); - let result = usage_string.clone(); - self.subtitle.set(usage_string); - - result + let subtitle = self.subtitle.take(); + self.subtitle.set(subtitle.clone()); + subtitle } pub fn set_subtitle(&self, usage_string: &str) { @@ -88,10 +84,8 @@ mod imp { pub fn detail(&self) -> glib::GString { let detail = self.detail.take(); - let result = detail.clone(); - self.detail.set(detail); - - result + self.detail.set(detail.clone()); + detail } pub fn set_detail(&self, detail: &str) { @@ -107,9 +101,8 @@ mod imp { let icon = self .icon .replace_with(|_| ThemedIcon::new("generic-process").into()); - let result = icon.clone(); - self.icon.set(icon); - result + self.icon.set(icon.clone()); + icon } pub fn set_icon(&self, icon: &Icon) { @@ -132,10 +125,8 @@ mod imp { pub fn tab_id(&self) -> glib::GString { let tab_id = self.tab_id.take(); - let result = tab_id.clone(); - self.tab_id.set(tab_id); - - result + self.tab_id.set(tab_id.clone()); + tab_id } pub fn set_tab_id(&self, tab_id: &str) { From 13e8978c8c6e40e6c6bac3281be990d4f5fa67c8 Mon Sep 17 00:00:00 2001 From: nokyan Date: Tue, 2 Jul 2024 23:02:29 +0200 Subject: [PATCH 3/8] Remove transitions to be in line with other GNOME apps --- src/ui/window.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/ui/window.rs b/src/ui/window.rs index 5f41f583..ce5903a9 100644 --- a/src/ui/window.rs +++ b/src/ui/window.rs @@ -566,10 +566,6 @@ impl MainWindow { } } - // enable the transition type only now to avoid having a transition right in the beginning - imp.content_stack - .set_transition_type(gtk::StackTransitionType::Crossfade); - first_refresh = false; } From eaa81f5b70b1644ba497f5bf725a8af3f9c0c3c0 Mon Sep 17 00:00:00 2001 From: nokyan Date: Tue, 2 Jul 2024 23:04:17 +0200 Subject: [PATCH 4/8] Update resources.pot --- po/resources.pot | 132 +++++++++++++++++++---------------------------- 1 file changed, 52 insertions(+), 80 deletions(-) diff --git a/po/resources.pot b/po/resources.pot index 4a985646..31f5b875 100644 --- a/po/resources.pot +++ b/po/resources.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-23 19:41+0200\n" +"POT-Creation-Date: 2024-07-02 23:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,7 +50,7 @@ msgid "CPU" msgstr "" #: data/net.nokyan.Resources.metainfo.xml.in.in:25 -#: src/ui/pages/applications/mod.rs:666 src/ui/pages/memory.rs:132 +#: src/ui/pages/applications/mod.rs:670 src/ui/pages/memory.rs:132 #: src/ui/pages/memory.rs:205 src/ui/pages/processes/mod.rs:726 #: data/resources/ui/window.ui:158 data/resources/ui/window.ui:165 #: data/resources/ui/dialogs/app_dialog.ui:81 @@ -61,7 +61,7 @@ msgid "Memory" msgstr "" #: data/net.nokyan.Resources.metainfo.xml.in.in:26 -#: src/ui/pages/applications/mod.rs:961 src/ui/pages/gpu.rs:146 +#: src/ui/pages/applications/mod.rs:965 src/ui/pages/gpu.rs:146 #: src/ui/pages/processes/mod.rs:1032 src/ui/window.rs:286 #: data/resources/ui/dialogs/app_dialog.ui:130 #: data/resources/ui/dialogs/process_dialog.ui:113 @@ -113,8 +113,8 @@ msgstr "" #: src/ui/dialogs/process_dialog.rs:133 src/ui/dialogs/process_dialog.rs:140 #: src/ui/dialogs/process_dialog.rs:147 src/ui/dialogs/process_dialog.rs:154 #: src/ui/dialogs/process_dialog.rs:190 src/ui/dialogs/process_dialog.rs:197 -#: src/ui/dialogs/process_dialog.rs:199 src/ui/pages/applications/mod.rs:780 -#: src/ui/pages/applications/mod.rs:878 src/ui/pages/battery.rs:223 +#: src/ui/dialogs/process_dialog.rs:199 src/ui/pages/applications/mod.rs:784 +#: src/ui/pages/applications/mod.rs:882 src/ui/pages/battery.rs:223 #: src/ui/pages/battery.rs:244 src/ui/pages/battery.rs:250 #: src/ui/pages/battery.rs:253 src/ui/pages/battery.rs:279 #: src/ui/pages/battery.rs:303 src/ui/pages/battery.rs:305 @@ -164,7 +164,7 @@ msgstr "" msgid "App" msgstr "" -#: src/ui/pages/applications/mod.rs:712 src/ui/pages/cpu.rs:149 +#: src/ui/pages/applications/mod.rs:716 src/ui/pages/cpu.rs:149 #: src/ui/pages/processes/mod.rs:771 src/ui/window.rs:332 #: data/resources/ui/window.ui:127 data/resources/ui/window.ui:134 #: data/resources/ui/dialogs/app_dialog.ui:72 @@ -174,7 +174,7 @@ msgstr "" msgid "Processor" msgstr "" -#: src/ui/pages/applications/mod.rs:762 src/ui/pages/processes/mod.rs:821 +#: src/ui/pages/applications/mod.rs:766 src/ui/pages/processes/mod.rs:821 #: data/resources/ui/dialogs/app_dialog.ui:90 #: data/resources/ui/dialogs/process_dialog.ui:73 #: data/resources/ui/dialogs/settings_dialog.ui:143 @@ -182,7 +182,7 @@ msgstr "" msgid "Drive Read" msgstr "" -#: src/ui/pages/applications/mod.rs:813 src/ui/pages/processes/mod.rs:874 +#: src/ui/pages/applications/mod.rs:817 src/ui/pages/processes/mod.rs:874 #: data/resources/ui/dialogs/app_dialog.ui:99 #: data/resources/ui/dialogs/process_dialog.ui:82 #: data/resources/ui/dialogs/settings_dialog.ui:148 @@ -190,7 +190,7 @@ msgstr "" msgid "Drive Read Total" msgstr "" -#: src/ui/pages/applications/mod.rs:860 src/ui/pages/processes/mod.rs:927 +#: src/ui/pages/applications/mod.rs:864 src/ui/pages/processes/mod.rs:927 #: data/resources/ui/dialogs/app_dialog.ui:108 #: data/resources/ui/dialogs/process_dialog.ui:91 #: data/resources/ui/dialogs/settings_dialog.ui:153 @@ -198,7 +198,7 @@ msgstr "" msgid "Drive Write" msgstr "" -#: src/ui/pages/applications/mod.rs:913 src/ui/pages/processes/mod.rs:980 +#: src/ui/pages/applications/mod.rs:917 src/ui/pages/processes/mod.rs:980 #: data/resources/ui/dialogs/app_dialog.ui:117 #: data/resources/ui/dialogs/process_dialog.ui:100 #: data/resources/ui/dialogs/settings_dialog.ui:158 @@ -206,7 +206,7 @@ msgstr "" msgid "Drive Write Total" msgstr "" -#: src/ui/pages/applications/mod.rs:1006 src/ui/pages/processes/mod.rs:1077 +#: src/ui/pages/applications/mod.rs:1010 src/ui/pages/processes/mod.rs:1077 #: data/resources/ui/dialogs/app_dialog.ui:148 #: data/resources/ui/dialogs/process_dialog.ui:131 #: data/resources/ui/dialogs/settings_dialog.ui:173 @@ -214,7 +214,7 @@ msgstr "" msgid "Video Encoder" msgstr "" -#: src/ui/pages/applications/mod.rs:1053 src/ui/pages/processes/mod.rs:1124 +#: src/ui/pages/applications/mod.rs:1057 src/ui/pages/processes/mod.rs:1124 #: data/resources/ui/dialogs/app_dialog.ui:157 #: data/resources/ui/dialogs/process_dialog.ui:140 #: data/resources/ui/dialogs/settings_dialog.ui:178 @@ -222,7 +222,7 @@ msgstr "" msgid "Video Decoder" msgstr "" -#: src/ui/pages/applications/mod.rs:1099 src/ui/pages/processes/mod.rs:1171 +#: src/ui/pages/applications/mod.rs:1103 src/ui/pages/processes/mod.rs:1171 #: data/resources/ui/dialogs/app_dialog.ui:139 #: data/resources/ui/dialogs/process_dialog.ui:122 #: data/resources/ui/dialogs/settings_dialog.ui:168 @@ -230,52 +230,56 @@ msgstr "" msgid "Video Memory" msgstr "" -#: src/ui/pages/applications/mod.rs:1143 src/ui/pages/processes/mod.rs:1354 +#: src/ui/pages/applications/mod.rs:1147 src/ui/pages/processes/mod.rs:1354 msgid "End {}?" msgstr "" -#: src/ui/pages/applications/mod.rs:1144 src/ui/pages/processes/mod.rs:1355 +#: src/ui/pages/applications/mod.rs:1148 src/ui/pages/processes/mod.rs:1355 msgid "Halt {}?" msgstr "" -#: src/ui/pages/applications/mod.rs:1145 src/ui/pages/processes/mod.rs:1356 +#: src/ui/pages/applications/mod.rs:1149 src/ui/pages/processes/mod.rs:1356 msgid "Kill {}?" msgstr "" -#: src/ui/pages/applications/mod.rs:1146 src/ui/pages/processes/mod.rs:1357 +#: src/ui/pages/applications/mod.rs:1150 src/ui/pages/processes/mod.rs:1357 msgid "Continue {}?" msgstr "" -#: src/ui/pages/applications/mod.rs:1152 src/ui/pages/processes/mod.rs:1363 +#: src/ui/pages/applications/mod.rs:1156 src/ui/pages/processes/mod.rs:1363 msgid "Unsaved work might be lost." msgstr "" -#: src/ui/pages/applications/mod.rs:1153 +#: src/ui/pages/applications/mod.rs:1157 msgid "" "Halting an app can come with serious risks such as losing data and security " "implications. Use with caution." msgstr "" -#: src/ui/pages/applications/mod.rs:1154 +#: src/ui/pages/applications/mod.rs:1158 msgid "" "Killing an app can come with serious risks such as losing data and security " "implications. Use with caution." msgstr "" -#: src/ui/pages/applications/mod.rs:1161 -msgid "End app" +#: src/ui/pages/applications/mod.rs:1165 +#: data/resources/ui/pages/applications.ui:97 +msgid "End App" msgstr "" -#: src/ui/pages/applications/mod.rs:1162 -msgid "Halt app" +#: src/ui/pages/applications/mod.rs:1166 +#: data/resources/ui/pages/applications.ui:10 +msgid "Halt App" msgstr "" -#: src/ui/pages/applications/mod.rs:1163 -msgid "Kill app" +#: src/ui/pages/applications/mod.rs:1167 +#: data/resources/ui/pages/applications.ui:6 +msgid "Kill App" msgstr "" -#: src/ui/pages/applications/mod.rs:1164 -msgid "Continue app" +#: src/ui/pages/applications/mod.rs:1168 +#: data/resources/ui/pages/applications.ui:14 +msgid "Continue App" msgstr "" #: src/ui/pages/battery.rs:136 src/ui/pages/drive.rs:157 @@ -438,79 +442,79 @@ msgid "" "security implications. Use with caution." msgstr "" -#: src/ui/pages/processes/mod.rs:1372 -msgid "End process" +#: src/ui/pages/processes/mod.rs:1372 data/resources/ui/pages/processes.ui:97 +msgid "End Process" msgstr "" -#: src/ui/pages/processes/mod.rs:1373 -msgid "Halt process" +#: src/ui/pages/processes/mod.rs:1373 data/resources/ui/pages/processes.ui:10 +msgid "Halt Process" msgstr "" -#: src/ui/pages/processes/mod.rs:1374 -msgid "Kill process" +#: src/ui/pages/processes/mod.rs:1374 data/resources/ui/pages/processes.ui:6 +msgid "Kill Process" msgstr "" -#: src/ui/pages/processes/mod.rs:1375 -msgid "Continue process" +#: src/ui/pages/processes/mod.rs:1375 data/resources/ui/pages/processes.ui:14 +msgid "Continue Process" msgstr "" #: src/ui/window.rs:284 msgid "GPU {}" msgstr "" -#: src/ui/window.rs:888 +#: src/ui/window.rs:884 msgid "Successfully ended {}" msgstr "" -#: src/ui/window.rs:889 +#: src/ui/window.rs:885 msgid "Successfully halted {}" msgstr "" -#: src/ui/window.rs:890 +#: src/ui/window.rs:886 msgid "Successfully killed {}" msgstr "" -#: src/ui/window.rs:891 +#: src/ui/window.rs:887 msgid "Successfully continued {}" msgstr "" -#: src/ui/window.rs:898 +#: src/ui/window.rs:894 msgid "There was a problem ending a process" msgid_plural "There were problems ending {} processes" msgstr[0] "" msgstr[1] "" -#: src/ui/window.rs:904 +#: src/ui/window.rs:900 msgid "There was a problem halting a process" msgid_plural "There were problems halting {} processes" msgstr[0] "" msgstr[1] "" -#: src/ui/window.rs:910 +#: src/ui/window.rs:906 msgid "There was a problem killing a process" msgid_plural "There were problems killing {} processes" msgstr[0] "" msgstr[1] "" -#: src/ui/window.rs:916 +#: src/ui/window.rs:912 msgid "There was a problem continuing a process" msgid_plural "There were problems continuing {} processes" msgstr[0] "" msgstr[1] "" -#: src/ui/window.rs:926 +#: src/ui/window.rs:922 msgid "There was a problem ending {}" msgstr "" -#: src/ui/window.rs:927 +#: src/ui/window.rs:923 msgid "There was a problem halting {}" msgstr "" -#: src/ui/window.rs:928 +#: src/ui/window.rs:924 msgid "There was a problem killing {}" msgstr "" -#: src/ui/window.rs:929 +#: src/ui/window.rs:925 msgid "There was a problem continuing {}" msgstr "" @@ -1369,22 +1373,6 @@ msgstr "" msgid "Virtual network interfaces are for example bridges or VPN tunnels" msgstr "" -#: data/resources/ui/pages/applications.ui:6 -msgid "Kill App" -msgstr "" - -#: data/resources/ui/pages/applications.ui:10 -msgid "Halt App" -msgstr "" - -#: data/resources/ui/pages/applications.ui:14 -msgid "Continue App" -msgstr "" - -#: data/resources/ui/pages/applications.ui:97 -msgid "End App" -msgstr "" - #: data/resources/ui/pages/battery.ui:36 msgid "Battery Health" msgstr "" @@ -1537,19 +1525,3 @@ msgstr "" #: data/resources/ui/pages/network.ui:85 msgid "Hardware Address" msgstr "" - -#: data/resources/ui/pages/processes.ui:6 -msgid "Kill Process" -msgstr "" - -#: data/resources/ui/pages/processes.ui:10 -msgid "Halt Process" -msgstr "" - -#: data/resources/ui/pages/processes.ui:14 -msgid "Continue Process" -msgstr "" - -#: data/resources/ui/pages/processes.ui:97 -msgid "End Process" -msgstr "" From 44db0112710ae537001c903c5705d544144a3c8b Mon Sep 17 00:00:00 2001 From: nokyan Date: Tue, 2 Jul 2024 23:04:27 +0200 Subject: [PATCH 5/8] Update German translation --- po/de.po | 150 +++++++++++++++++++++++++++---------------------------- 1 file changed, 73 insertions(+), 77 deletions(-) diff --git a/po/de.po b/po/de.po index f1d5df91..bfaaf9fb 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: resources\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-23 19:41+0200\n" +"POT-Creation-Date: 2024-07-02 23:02+0200\n" "PO-Revision-Date: 2024-06-23 19:43+0200\n" "Last-Translator: nokyan \n" "Language-Team: German \n" @@ -55,7 +55,7 @@ msgid "CPU" msgstr "CPU" #: data/net.nokyan.Resources.metainfo.xml.in.in:25 -#: src/ui/pages/applications/mod.rs:666 src/ui/pages/memory.rs:132 +#: src/ui/pages/applications/mod.rs:670 src/ui/pages/memory.rs:132 #: src/ui/pages/memory.rs:205 src/ui/pages/processes/mod.rs:726 #: data/resources/ui/window.ui:158 data/resources/ui/window.ui:165 #: data/resources/ui/dialogs/app_dialog.ui:81 @@ -66,7 +66,7 @@ msgid "Memory" msgstr "Arbeitsspeicher" #: data/net.nokyan.Resources.metainfo.xml.in.in:26 -#: src/ui/pages/applications/mod.rs:961 src/ui/pages/gpu.rs:146 +#: src/ui/pages/applications/mod.rs:965 src/ui/pages/gpu.rs:146 #: src/ui/pages/processes/mod.rs:1032 src/ui/window.rs:286 #: data/resources/ui/dialogs/app_dialog.ui:130 #: data/resources/ui/dialogs/process_dialog.ui:113 @@ -118,8 +118,8 @@ msgstr "Ja (Snap)" #: src/ui/dialogs/process_dialog.rs:133 src/ui/dialogs/process_dialog.rs:140 #: src/ui/dialogs/process_dialog.rs:147 src/ui/dialogs/process_dialog.rs:154 #: src/ui/dialogs/process_dialog.rs:190 src/ui/dialogs/process_dialog.rs:197 -#: src/ui/dialogs/process_dialog.rs:199 src/ui/pages/applications/mod.rs:780 -#: src/ui/pages/applications/mod.rs:878 src/ui/pages/battery.rs:223 +#: src/ui/dialogs/process_dialog.rs:199 src/ui/pages/applications/mod.rs:784 +#: src/ui/pages/applications/mod.rs:882 src/ui/pages/battery.rs:223 #: src/ui/pages/battery.rs:244 src/ui/pages/battery.rs:250 #: src/ui/pages/battery.rs:253 src/ui/pages/battery.rs:279 #: src/ui/pages/battery.rs:303 src/ui/pages/battery.rs:305 @@ -169,7 +169,7 @@ msgstr "Abbrechen" msgid "App" msgstr "Anwendung" -#: src/ui/pages/applications/mod.rs:712 src/ui/pages/cpu.rs:149 +#: src/ui/pages/applications/mod.rs:716 src/ui/pages/cpu.rs:149 #: src/ui/pages/processes/mod.rs:771 src/ui/window.rs:332 #: data/resources/ui/window.ui:127 data/resources/ui/window.ui:134 #: data/resources/ui/dialogs/app_dialog.ui:72 @@ -179,7 +179,7 @@ msgstr "Anwendung" msgid "Processor" msgstr "Prozessor" -#: src/ui/pages/applications/mod.rs:762 src/ui/pages/processes/mod.rs:821 +#: src/ui/pages/applications/mod.rs:766 src/ui/pages/processes/mod.rs:821 #: data/resources/ui/dialogs/app_dialog.ui:90 #: data/resources/ui/dialogs/process_dialog.ui:73 #: data/resources/ui/dialogs/settings_dialog.ui:143 @@ -187,7 +187,7 @@ msgstr "Prozessor" msgid "Drive Read" msgstr "Lesevorgänge" -#: src/ui/pages/applications/mod.rs:813 src/ui/pages/processes/mod.rs:874 +#: src/ui/pages/applications/mod.rs:817 src/ui/pages/processes/mod.rs:874 #: data/resources/ui/dialogs/app_dialog.ui:99 #: data/resources/ui/dialogs/process_dialog.ui:82 #: data/resources/ui/dialogs/settings_dialog.ui:148 @@ -195,7 +195,7 @@ msgstr "Lesevorgänge" msgid "Drive Read Total" msgstr "Lesevorgänge insgesamt" -#: src/ui/pages/applications/mod.rs:860 src/ui/pages/processes/mod.rs:927 +#: src/ui/pages/applications/mod.rs:864 src/ui/pages/processes/mod.rs:927 #: data/resources/ui/dialogs/app_dialog.ui:108 #: data/resources/ui/dialogs/process_dialog.ui:91 #: data/resources/ui/dialogs/settings_dialog.ui:153 @@ -203,7 +203,7 @@ msgstr "Lesevorgänge insgesamt" msgid "Drive Write" msgstr "Schreibvorgänge" -#: src/ui/pages/applications/mod.rs:913 src/ui/pages/processes/mod.rs:980 +#: src/ui/pages/applications/mod.rs:917 src/ui/pages/processes/mod.rs:980 #: data/resources/ui/dialogs/app_dialog.ui:117 #: data/resources/ui/dialogs/process_dialog.ui:100 #: data/resources/ui/dialogs/settings_dialog.ui:158 @@ -211,7 +211,7 @@ msgstr "Schreibvorgänge" msgid "Drive Write Total" msgstr "Schreibvorgänge insgesamt" -#: src/ui/pages/applications/mod.rs:1006 src/ui/pages/processes/mod.rs:1077 +#: src/ui/pages/applications/mod.rs:1010 src/ui/pages/processes/mod.rs:1077 #: data/resources/ui/dialogs/app_dialog.ui:148 #: data/resources/ui/dialogs/process_dialog.ui:131 #: data/resources/ui/dialogs/settings_dialog.ui:173 @@ -219,7 +219,7 @@ msgstr "Schreibvorgänge insgesamt" msgid "Video Encoder" msgstr "Videokodierer" -#: src/ui/pages/applications/mod.rs:1053 src/ui/pages/processes/mod.rs:1124 +#: src/ui/pages/applications/mod.rs:1057 src/ui/pages/processes/mod.rs:1124 #: data/resources/ui/dialogs/app_dialog.ui:157 #: data/resources/ui/dialogs/process_dialog.ui:140 #: data/resources/ui/dialogs/settings_dialog.ui:178 @@ -227,7 +227,7 @@ msgstr "Videokodierer" msgid "Video Decoder" msgstr "Videodekodierer" -#: src/ui/pages/applications/mod.rs:1099 src/ui/pages/processes/mod.rs:1171 +#: src/ui/pages/applications/mod.rs:1103 src/ui/pages/processes/mod.rs:1171 #: data/resources/ui/dialogs/app_dialog.ui:139 #: data/resources/ui/dialogs/process_dialog.ui:122 #: data/resources/ui/dialogs/settings_dialog.ui:168 @@ -235,27 +235,27 @@ msgstr "Videodekodierer" msgid "Video Memory" msgstr "Grafikspeicher" -#: src/ui/pages/applications/mod.rs:1143 src/ui/pages/processes/mod.rs:1354 +#: src/ui/pages/applications/mod.rs:1147 src/ui/pages/processes/mod.rs:1354 msgid "End {}?" msgstr "{} beenden?" -#: src/ui/pages/applications/mod.rs:1144 src/ui/pages/processes/mod.rs:1355 +#: src/ui/pages/applications/mod.rs:1148 src/ui/pages/processes/mod.rs:1355 msgid "Halt {}?" msgstr "{} anhalten?" -#: src/ui/pages/applications/mod.rs:1145 src/ui/pages/processes/mod.rs:1356 +#: src/ui/pages/applications/mod.rs:1149 src/ui/pages/processes/mod.rs:1356 msgid "Kill {}?" msgstr "{} abwürgen?" -#: src/ui/pages/applications/mod.rs:1146 src/ui/pages/processes/mod.rs:1357 +#: src/ui/pages/applications/mod.rs:1150 src/ui/pages/processes/mod.rs:1357 msgid "Continue {}?" msgstr "{} fortsetzen?" -#: src/ui/pages/applications/mod.rs:1152 src/ui/pages/processes/mod.rs:1363 +#: src/ui/pages/applications/mod.rs:1156 src/ui/pages/processes/mod.rs:1363 msgid "Unsaved work might be lost." msgstr "Ungespeicherte Daten könnten verloren gehen." -#: src/ui/pages/applications/mod.rs:1153 +#: src/ui/pages/applications/mod.rs:1157 msgid "" "Halting an app can come with serious risks such as losing data and security " "implications. Use with caution." @@ -263,7 +263,7 @@ msgstr "" "Das Anhalten einer Anwendung ist mit Risiken wie dem Verlust von Daten sowie " "Sicherheitsproblemen verbunden. Sie sollten vorsichtig sein." -#: src/ui/pages/applications/mod.rs:1154 +#: src/ui/pages/applications/mod.rs:1158 msgid "" "Killing an app can come with serious risks such as losing data and security " "implications. Use with caution." @@ -271,21 +271,25 @@ msgstr "" "Das Abwürgen einer Anwendung ist mit Risiken wie dem Verlust von Daten sowie " "Sicherheitsproblemen verbunden. Sie sollten vorsichtig sein." -#: src/ui/pages/applications/mod.rs:1161 -msgid "End app" +#: src/ui/pages/applications/mod.rs:1165 +#: data/resources/ui/pages/applications.ui:97 +msgid "End App" msgstr "Anwendung beenden" -#: src/ui/pages/applications/mod.rs:1162 -msgid "Halt app" +#: src/ui/pages/applications/mod.rs:1166 +#: data/resources/ui/pages/applications.ui:10 +msgid "Halt App" msgstr "Anwendung anhalten" -#: src/ui/pages/applications/mod.rs:1163 -msgid "Kill app" +#: src/ui/pages/applications/mod.rs:1167 +#: data/resources/ui/pages/applications.ui:6 +msgid "Kill App" msgstr "Anwendung abwürgen" -#: src/ui/pages/applications/mod.rs:1164 -msgid "Continue app" -msgstr "Anwendung fortfahren" +#: src/ui/pages/applications/mod.rs:1168 +#: data/resources/ui/pages/applications.ui:14 +msgid "Continue App" +msgstr "Anwendung fortsetzen" #: src/ui/pages/battery.rs:136 src/ui/pages/drive.rs:157 msgid "Drive" @@ -451,79 +455,79 @@ msgstr "" "Das Abwürgen eines Prozesses ist mit Risiken wie dem Verlust von Daten sowie " "Sicherheitsproblemen verbunden. Sie sollten vorsichtig sein." -#: src/ui/pages/processes/mod.rs:1372 -msgid "End process" +#: src/ui/pages/processes/mod.rs:1372 data/resources/ui/pages/processes.ui:97 +msgid "End Process" msgstr "Prozess beenden" -#: src/ui/pages/processes/mod.rs:1373 -msgid "Halt process" +#: src/ui/pages/processes/mod.rs:1373 data/resources/ui/pages/processes.ui:10 +msgid "Halt Process" msgstr "Prozess anhalten" -#: src/ui/pages/processes/mod.rs:1374 -msgid "Kill process" +#: src/ui/pages/processes/mod.rs:1374 data/resources/ui/pages/processes.ui:6 +msgid "Kill Process" msgstr "Prozess abwürgen" -#: src/ui/pages/processes/mod.rs:1375 -msgid "Continue process" +#: src/ui/pages/processes/mod.rs:1375 data/resources/ui/pages/processes.ui:14 +msgid "Continue Process" msgstr "Prozess fortsetzen" #: src/ui/window.rs:284 msgid "GPU {}" msgstr "GPU {}" -#: src/ui/window.rs:888 +#: src/ui/window.rs:884 msgid "Successfully ended {}" msgstr "{} wurde erfolgreich beendet" -#: src/ui/window.rs:889 +#: src/ui/window.rs:885 msgid "Successfully halted {}" msgstr "{} wurde erfolgreich angehalten" -#: src/ui/window.rs:890 +#: src/ui/window.rs:886 msgid "Successfully killed {}" msgstr "{} wurde erfolgreich abgewürgt" -#: src/ui/window.rs:891 +#: src/ui/window.rs:887 msgid "Successfully continued {}" msgstr "{} wurde erfolgreich fortgesetzt" -#: src/ui/window.rs:898 +#: src/ui/window.rs:894 msgid "There was a problem ending a process" msgid_plural "There were problems ending {} processes" msgstr[0] "Es gab ein Problem beim Beenden von {} Prozessen" msgstr[1] "Es gab ein Problem beim Beenden eines Prozesses" -#: src/ui/window.rs:904 +#: src/ui/window.rs:900 msgid "There was a problem halting a process" msgid_plural "There were problems halting {} processes" msgstr[0] "Es gab ein Problem beim Anhalten von {} Prozessen" msgstr[1] "Es gab ein Problem beim Anhalten eines Prozesses" -#: src/ui/window.rs:910 +#: src/ui/window.rs:906 msgid "There was a problem killing a process" msgid_plural "There were problems killing {} processes" msgstr[0] "Es gab ein Problem beim Abwürgen von {} Prozessen" msgstr[1] "Es gab ein Problem beim Abwürgen eines Prozesses" -#: src/ui/window.rs:916 +#: src/ui/window.rs:912 msgid "There was a problem continuing a process" msgid_plural "There were problems continuing {} processes" msgstr[0] "Es gab ein Problem beim Fortsetzen von {} Prozessen" msgstr[1] "Es gab ein Problem beim Fortsetzen eines Prozesses" -#: src/ui/window.rs:926 +#: src/ui/window.rs:922 msgid "There was a problem ending {}" msgstr "Es gab ein Problem beim Beenden von {}" -#: src/ui/window.rs:927 +#: src/ui/window.rs:923 msgid "There was a problem halting {}" msgstr "Es gab ein Problem beim Anhalten von {}" -#: src/ui/window.rs:928 +#: src/ui/window.rs:924 msgid "There was a problem killing {}" msgstr "Es gab ein Problem beim Abwürgen von {}" -#: src/ui/window.rs:929 +#: src/ui/window.rs:925 msgid "There was a problem continuing {}" msgstr "Es gab ein Problem beim Fortsetzen von {}" @@ -1387,22 +1391,6 @@ msgid "Virtual network interfaces are for example bridges or VPN tunnels" msgstr "" "Als virtuelle Netzwerkschnittstellen zählen zum Beispiel Bridges oder Tunnel" -#: data/resources/ui/pages/applications.ui:6 -msgid "Kill App" -msgstr "Anwendung abwürgen" - -#: data/resources/ui/pages/applications.ui:10 -msgid "Halt App" -msgstr "Anwendung anhalten" - -#: data/resources/ui/pages/applications.ui:14 -msgid "Continue App" -msgstr "Anwendung fortsetzen" - -#: data/resources/ui/pages/applications.ui:97 -msgid "End App" -msgstr "Anwendung beenden" - #: data/resources/ui/pages/battery.ui:36 msgid "Battery Health" msgstr "Batteriezustand" @@ -1556,21 +1544,29 @@ msgstr "Schnittstelle" msgid "Hardware Address" msgstr "Geräteadresse" -#: data/resources/ui/pages/processes.ui:6 -msgid "Kill Process" -msgstr "Prozess abwürgen" +#~ msgid "End app" +#~ msgstr "Anwendung beenden" -#: data/resources/ui/pages/processes.ui:10 -msgid "Halt Process" -msgstr "Prozess anhalten" +#~ msgid "Halt app" +#~ msgstr "Anwendung anhalten" -#: data/resources/ui/pages/processes.ui:14 -msgid "Continue Process" -msgstr "Prozess fortsetzen" +#~ msgid "Kill app" +#~ msgstr "Anwendung abwürgen" -#: data/resources/ui/pages/processes.ui:97 -msgid "End Process" -msgstr "Prozess beenden" +#~ msgid "Continue app" +#~ msgstr "Anwendung fortfahren" + +#~ msgid "End process" +#~ msgstr "Prozess beenden" + +#~ msgid "Halt process" +#~ msgstr "Prozess anhalten" + +#~ msgid "Kill process" +#~ msgstr "Prozess abwürgen" + +#~ msgid "Continue process" +#~ msgstr "Prozess fortsetzen" #~ msgid "Application" #~ msgstr "Anwendung" From 79a6a3ae22a798e8a4b04e499796fe12897393fe Mon Sep 17 00:00:00 2001 From: nokyan Date: Wed, 3 Jul 2024 16:56:41 +0200 Subject: [PATCH 6/8] Put symbolic icons in app dialogs into bubbles as well --- data/resources/style.css | 7 ++++++ data/resources/ui/dialogs/app_dialog.ui | 15 ++++++++---- src/ui/dialogs/app_dialog.rs | 31 +++++++++++++++++++++---- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/data/resources/style.css b/data/resources/style.css index 82a93c3f..821b6c19 100644 --- a/data/resources/style.css +++ b/data/resources/style.css @@ -12,3 +12,10 @@ progressbar.slim > trough, progressbar.slim > trough > progress { min-height: 32px; border-radius: 50%; } + +.big-bubble { + background-color: alpha(currentColor, 0.08); + min-width: 128px; + min-height: 128px; + border-radius: 50%; +} diff --git a/data/resources/ui/dialogs/app_dialog.ui b/data/resources/ui/dialogs/app_dialog.ui index a8722366..2e1d6300 100644 --- a/data/resources/ui/dialogs/app_dialog.ui +++ b/data/resources/ui/dialogs/app_dialog.ui @@ -33,11 +33,16 @@ 16 16 - - 128 - + + center + + + 128 + + + diff --git a/src/ui/dialogs/app_dialog.rs b/src/ui/dialogs/app_dialog.rs index 76d3867d..d44ecee0 100644 --- a/src/ui/dialogs/app_dialog.rs +++ b/src/ui/dialogs/app_dialog.rs @@ -1,4 +1,5 @@ use adw::{prelude::*, subclass::prelude::*}; +use gtk::gio::ThemedIcon; use gtk::glib; use process_data::Containerization; @@ -100,12 +101,28 @@ impl ResAppDialog { } pub fn setup_widgets(&self, app: &AppItem) { - self.update(app); - } - - pub fn update(&self, app: &AppItem) { let imp = self.imp(); + if app.id.is_none() // this will be the case for System Processes + || app + .icon + .downcast_ref::() + .map(|themed_icon| { + themed_icon + .names() + .iter() + .all(|name| name.ends_with("-symbolic")) + || themed_icon + .names() + .iter() + .all(|name| name.contains("generic-process")) + }) + .unwrap_or(false) + { + imp.icon.set_pixel_size(imp.icon.pixel_size() / 2); + imp.icon.set_css_classes(&["big-bubble"]); + } + imp.icon.set_gicon(Some(&app.icon)); imp.name.set_label(&app.display_name); @@ -122,6 +139,12 @@ impl ResAppDialog { imp.id.set_visible(false); } + self.update(app); + } + + pub fn update(&self, app: &AppItem) { + let imp = self.imp(); + imp.running_since.set_subtitle(&app.running_since); imp.cpu_usage From f655d7ae83762e8c2306d3538e2863e006b89395 Mon Sep 17 00:00:00 2001 From: nokyan Date: Wed, 3 Jul 2024 16:59:10 +0200 Subject: [PATCH 7/8] Don't update entries in dialogs that (are supposed to) never change --- src/ui/dialogs/app_dialog.rs | 18 +++++----- src/ui/dialogs/process_dialog.rs | 62 ++++++++++++++++---------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/ui/dialogs/app_dialog.rs b/src/ui/dialogs/app_dialog.rs index d44ecee0..3718508e 100644 --- a/src/ui/dialogs/app_dialog.rs +++ b/src/ui/dialogs/app_dialog.rs @@ -139,14 +139,21 @@ impl ResAppDialog { imp.id.set_visible(false); } + imp.running_since.set_subtitle(&app.running_since); + + let containerized = match app.containerization { + Containerization::None => i18n("No"), + Containerization::Flatpak => i18n("Yes (Flatpak)"), + Containerization::Snap => i18n("Yes (Snap)"), + }; + imp.containerized.set_subtitle(&containerized); + self.update(app); } pub fn update(&self, app: &AppItem) { let imp = self.imp(); - imp.running_since.set_subtitle(&app.running_since); - imp.cpu_usage .set_subtitle(&format!("{:.1} %", app.cpu_time_ratio * 100.0)); @@ -179,12 +186,5 @@ impl ResAppDialog { imp.processes_amount .set_subtitle(&app.processes_amount.to_string()); - - let containerized = match app.containerization { - Containerization::None => i18n("No"), - Containerization::Flatpak => i18n("Yes (Flatpak)"), - Containerization::Snap => i18n("Yes (Snap)"), - }; - imp.containerized.set_subtitle(&containerized); } } diff --git a/src/ui/dialogs/process_dialog.rs b/src/ui/dialogs/process_dialog.rs index c5ecc8f7..3a87e608 100644 --- a/src/ui/dialogs/process_dialog.rs +++ b/src/ui/dialogs/process_dialog.rs @@ -110,16 +110,45 @@ impl ResProcessDialog { pub fn setup_widgets(&self, process: &ProcessItem, user: &str) { let imp = self.imp(); + imp.name.set_label(&process.display_name); + imp.user.set_subtitle(user); + imp.pid.set_subtitle(&process.pid.to_string()); + + imp.running_since.set_subtitle( + &boot_time() + .and_then(|boot_time| { + boot_time + .add_seconds(process.starttime) + .context("unable to add seconds to boot time") + }) + .and_then(|time| time.format("%c").context("unable to format running_since")) + .map(|gstr| gstr.to_string()) + .unwrap_or(i18n("N/A")), + ); + + imp.commandline.set_subtitle(&process.commandline); + imp.commandline.set_tooltip_text(Some(&process.commandline)); + + imp.cgroup + .set_subtitle(&process.cgroup.clone().unwrap_or_else(|| i18n("N/A"))); + imp.cgroup + .set_tooltip_text(Some(&process.cgroup.clone().unwrap_or_else(|| i18n("N/A")))); + + let containerized = match process.containerization { + Containerization::None => i18n("No"), + Containerization::Flatpak => i18n("Yes (Flatpak)"), + Containerization::Snap => i18n("Yes (Snap)"), + }; + imp.containerized.set_subtitle(&containerized); + self.update(process); } pub fn update(&self, process: &ProcessItem) { let imp = self.imp(); - imp.name.set_label(&process.display_name); - imp.cpu_usage .set_subtitle(&format!("{:.1} %", process.cpu_time_ratio * 100.0)); @@ -175,34 +204,5 @@ impl ResProcessDialog { imp.system_cpu_time .set_subtitle(&format_time(process.system_cpu_time)); - - imp.pid.set_subtitle(&process.pid.to_string()); - - imp.running_since.set_subtitle( - &boot_time() - .and_then(|boot_time| { - boot_time - .add_seconds(process.starttime) - .context("unable to add seconds to boot time") - }) - .and_then(|time| time.format("%c").context("unable to format running_since")) - .map(|gstr| gstr.to_string()) - .unwrap_or(i18n("N/A")), - ); - - imp.commandline.set_subtitle(&process.commandline); - imp.commandline.set_tooltip_text(Some(&process.commandline)); - - imp.cgroup - .set_subtitle(&process.cgroup.clone().unwrap_or_else(|| i18n("N/A"))); - imp.cgroup - .set_tooltip_text(Some(&process.cgroup.clone().unwrap_or_else(|| i18n("N/A")))); - - let containerized = match process.containerization { - Containerization::None => i18n("No"), - Containerization::Flatpak => i18n("Yes (Flatpak)"), - Containerization::Snap => i18n("Yes (Snap)"), - }; - imp.containerized.set_subtitle(&containerized); } } From 9684f39d229ac7e67bcb7fb998ba9f40c502df91 Mon Sep 17 00:00:00 2001 From: nokyan Date: Wed, 3 Jul 2024 17:00:21 +0200 Subject: [PATCH 8/8] Clippy suggestions --- src/ui/pages/applications/mod.rs | 2 +- src/ui/pages/processes/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/pages/applications/mod.rs b/src/ui/pages/applications/mod.rs index 703e5308..6b3ad781 100644 --- a/src/ui/pages/applications/mod.rs +++ b/src/ui/pages/applications/mod.rs @@ -24,7 +24,7 @@ use crate::utils::NUM_CPUS; use self::application_entry::ApplicationEntry; use self::application_name_cell::ResApplicationNameCell; -pub const TAB_ID: &'static str = "applications"; +pub const TAB_ID: &str = "applications"; mod imp { use std::{ diff --git a/src/ui/pages/processes/mod.rs b/src/ui/pages/processes/mod.rs index ff1b1e29..f2d3cde2 100644 --- a/src/ui/pages/processes/mod.rs +++ b/src/ui/pages/processes/mod.rs @@ -24,7 +24,7 @@ use crate::utils::NUM_CPUS; use self::process_entry::ProcessEntry; use self::process_name_cell::ResProcessNameCell; -pub const TAB_ID: &'static str = "processes"; +pub const TAB_ID: &str = "processes"; mod imp { use std::{