From d2c7709b5b7051e62ba84215e91b83a1c0b38d10 Mon Sep 17 00:00:00 2001 From: Ilya Zlobintsev Date: Wed, 14 May 2025 09:34:23 +0300 Subject: [PATCH] chore: gray out the ui when switching GPUs --- Cargo.lock | 12 ++++++------ lact-cli/Cargo.toml | 2 +- lact-client/Cargo.toml | 2 +- lact-daemon/Cargo.toml | 2 +- lact-gui/Cargo.toml | 2 +- lact-gui/src/app.rs | 12 +++++++++++- lact-schema/Cargo.toml | 2 +- lact/Cargo.toml | 2 +- pkg/recipes/lact-headless/recipe.yml | 2 +- pkg/recipes/lact-libadwaita/recipe.yml | 2 +- pkg/recipes/lact/recipe.yml | 2 +- 11 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 351b9965..0501250d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1287,7 +1287,7 @@ dependencies = [ [[package]] name = "lact" -version = "0.7.4" +version = "0.7.5" dependencies = [ "anyhow", "configparser", @@ -1300,7 +1300,7 @@ dependencies = [ [[package]] name = "lact-cli" -version = "0.7.4" +version = "0.7.5" dependencies = [ "anyhow", "lact-client", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "lact-client" -version = "0.7.4" +version = "0.7.5" dependencies = [ "amdgpu-sysfs", "anyhow", @@ -1325,7 +1325,7 @@ dependencies = [ [[package]] name = "lact-daemon" -version = "0.7.4" +version = "0.7.5" dependencies = [ "amdgpu-sysfs", "anyhow", @@ -1363,7 +1363,7 @@ dependencies = [ [[package]] name = "lact-gui" -version = "0.7.4" +version = "0.7.5" dependencies = [ "amdgpu-sysfs", "anyhow", @@ -1390,7 +1390,7 @@ dependencies = [ [[package]] name = "lact-schema" -version = "0.7.4" +version = "0.7.5" dependencies = [ "amdgpu-sysfs", "anyhow", diff --git a/lact-cli/Cargo.toml b/lact-cli/Cargo.toml index b2fb4c0c..79eb0203 100644 --- a/lact-cli/Cargo.toml +++ b/lact-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact-cli" -version = "0.7.4" +version = "0.7.5" edition = "2021" [dependencies] diff --git a/lact-client/Cargo.toml b/lact-client/Cargo.toml index ed7f6fdc..371b315f 100644 --- a/lact-client/Cargo.toml +++ b/lact-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact-client" -version = "0.7.4" +version = "0.7.5" edition = "2021" [dependencies] diff --git a/lact-daemon/Cargo.toml b/lact-daemon/Cargo.toml index 463828b0..2932cee7 100644 --- a/lact-daemon/Cargo.toml +++ b/lact-daemon/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact-daemon" -version = "0.7.4" +version = "0.7.5" edition = "2021" [features] diff --git a/lact-gui/Cargo.toml b/lact-gui/Cargo.toml index 18ed413b..dc15b850 100644 --- a/lact-gui/Cargo.toml +++ b/lact-gui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact-gui" -version = "0.7.4" +version = "0.7.5" authors = ["Ilya Zlobintsev "] edition = "2021" diff --git a/lact-gui/src/app.rs b/lact-gui/src/app.rs index d73c9a76..10e93736 100644 --- a/lact-gui/src/app.rs +++ b/lact-gui/src/app.rs @@ -43,8 +43,9 @@ use pages::{ }; use relm4::{ actions::{RelmAction, RelmActionGroup}, + binding::BoolBinding, prelude::{AsyncComponent, AsyncComponentParts}, - tokio, AsyncComponentSender, Component, ComponentController, MessageBroker, + tokio, AsyncComponentSender, Component, ComponentController, MessageBroker, RelmObjectExt, }; use std::{ os::unix::net::UnixStream, @@ -67,6 +68,8 @@ pub struct AppModel { daemon_client: DaemonClient, graphs_window: relm4::Controller, + ui_sensitive: BoolBinding, + info_page: relm4::Controller, oc_page: relm4::Controller, thermals_page: relm4::Controller, @@ -105,6 +108,8 @@ impl AsyncComponent for AppModel { set_margin_start: 30, set_margin_end: 30, + add_binding: (&model.ui_sensitive, "sensitive"), + add_titled[Some("info_page"), "Information"] = model.info_page.widget(), add_titled[Some("oc_page"), "OC"] = model.oc_page.widget(), add_titled[Some("thermals_page"), "Thermals"] = model.thermals_page.widget(), @@ -217,6 +222,7 @@ impl AsyncComponent for AppModel { thermals_page, software_page, apply_revealer, + ui_sensitive: BoolBinding::new(false), header, stats_task_handle: None, }; @@ -441,6 +447,8 @@ impl AppModel { gpu_id: String, sender: AsyncComponentSender, ) -> anyhow::Result<()> { + self.ui_sensitive.set_value(false); + let daemon_client = self.daemon_client.clone(); let info_buf = daemon_client .get_device_info(&gpu_id) @@ -491,6 +499,8 @@ impl AppModel { initial: true, }); + self.ui_sensitive.set_value(true); + Ok(()) } diff --git a/lact-schema/Cargo.toml b/lact-schema/Cargo.toml index 7ba2aef4..b3678181 100644 --- a/lact-schema/Cargo.toml +++ b/lact-schema/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact-schema" -version = "0.7.4" +version = "0.7.5" edition = "2021" [features] diff --git a/lact/Cargo.toml b/lact/Cargo.toml index 5cebefda..d77c0e30 100644 --- a/lact/Cargo.toml +++ b/lact/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lact" -version = "0.7.4" +version = "0.7.5" edition = "2021" [features] diff --git a/pkg/recipes/lact-headless/recipe.yml b/pkg/recipes/lact-headless/recipe.yml index b77696bf..a3c4c144 100644 --- a/pkg/recipes/lact-headless/recipe.yml +++ b/pkg/recipes/lact-headless/recipe.yml @@ -3,7 +3,7 @@ metadata: description: GPU control utility arch: x86_64 license: MIT - version: 0.7.4 + version: 0.7.5 maintainer: ilya-zlobintsev url: https://github.com/ilya-zlobintsev/lact source: diff --git a/pkg/recipes/lact-libadwaita/recipe.yml b/pkg/recipes/lact-libadwaita/recipe.yml index 5340cd10..98024943 100644 --- a/pkg/recipes/lact-libadwaita/recipe.yml +++ b/pkg/recipes/lact-libadwaita/recipe.yml @@ -3,7 +3,7 @@ metadata: description: GPU control utility arch: x86_64 license: MIT - version: 0.7.4 + version: 0.7.5 maintainer: ilya-zlobintsev url: https://github.com/ilya-zlobintsev/lact source: diff --git a/pkg/recipes/lact/recipe.yml b/pkg/recipes/lact/recipe.yml index ae420581..7a045d1d 100644 --- a/pkg/recipes/lact/recipe.yml +++ b/pkg/recipes/lact/recipe.yml @@ -3,7 +3,7 @@ metadata: description: GPU control utility arch: x86_64 license: MIT - version: 0.7.4 + version: 0.7.5 maintainer: ilya-zlobintsev url: https://github.com/ilya-zlobintsev/lact source: