diff --git a/lact-gui/src/app/mod.rs b/lact-gui/src/app/mod.rs
index 8701e73..77ad69a 100644
--- a/lact-gui/src/app/mod.rs
+++ b/lact-gui/src/app/mod.rs
@@ -9,6 +9,7 @@ use std::time::Duration;
use crate::client::DaemonClient;
use apply_revealer::ApplyRevealer;
+use glib::clone;
use gtk::prelude::*;
use gtk::*;
use header::Header;
@@ -249,12 +250,11 @@ impl App {
// The loop that gets stats
let (sender, receiver) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
- {
- let daemon_connection = self.daemon_client.clone();
- thread::spawn(move || loop {
+ thread::spawn(
+ clone!(@strong self.daemon_client as daemon_client => move || loop {
let gpu_id = current_gpu_id.read().unwrap();
- match daemon_connection
+ match daemon_client
.get_device_stats(&gpu_id)
.and_then(|stats| stats.inner())
{
@@ -266,19 +266,19 @@ impl App {
}
}
thread::sleep(Duration::from_millis(500));
- });
- }
+ }),
+ );
// Receiving stats into the gui event loop
- {
- let thermals_page = self.root_stack.thermals_page.clone();
- // let oc_page = self.root_stack.oc_page.clone();
- receiver.attach(None, move |msg| {
+ receiver.attach(
+ None,
+ clone!(@strong self.root_stack as root_stack, => move |msg| {
match msg {
GuiUpdateMsg::GpuStats(stats) => {
trace!("New stats received, updating {stats:?}");
- thermals_page.set_stats(&stats);
+ root_stack.info_page.set_stats(&stats);
+ root_stack.thermals_page.set_stats(&stats);
// oc_page.set_stats(&stats);
} /*GuiUpdateMsg::FanControlInfo(fan_control_info) => {
thermals_page.set_ventilation_info(fan_control_info)
@@ -286,8 +286,8 @@ impl App {
}
glib::Continue(true)
- });
- }
+ }),
+ );
}
}
diff --git a/lact-gui/src/app/root_stack/info_page/mod.rs b/lact-gui/src/app/root_stack/info_page/mod.rs
index 86819ce..550e2dd 100644
--- a/lact-gui/src/app/root_stack/info_page/mod.rs
+++ b/lact-gui/src/app/root_stack/info_page/mod.rs
@@ -2,7 +2,7 @@ mod vulkan_info;
use gtk::prelude::*;
use gtk::*;
-use lact_schema::DeviceInfo;
+use lact_schema::{DeviceInfo, DeviceStats};
use vulkan_info::VulkanInfoFrame;
#[derive(Clone)]
@@ -184,13 +184,6 @@ impl InformationPage {
self.driver_label
.set_markup(&format!("{}", gpu_info.driver));
- // TODO
- // let vram_size = gpu_info
- // .vram_size
- // .map_or_else(|| "unknown".to_owned(), |size| size.to_string());
- // self.vram_size_label
- // .set_markup(&format!("{vram_size}"));
-
let link_speed = gpu_info
.link_info
.current_speed
@@ -210,4 +203,13 @@ impl InformationPage {
self.container.show_all();
}
+
+ pub fn set_stats(&self, stats: &DeviceStats) {
+ let vram_size = stats.total_vram.map_or_else(
+ || "unknown".to_owned(),
+ |size| (size / 1024 / 1024).to_string(),
+ );
+ self.vram_size_label
+ .set_markup(&format!("{vram_size}MiB"));
+ }
}
diff --git a/lact-gui/src/app/root_stack/info_page/vulkan_info.rs b/lact-gui/src/app/root_stack/info_page/vulkan_info.rs
index 287c60f..3b77d94 100644
--- a/lact-gui/src/app/root_stack/info_page/vulkan_info.rs
+++ b/lact-gui/src/app/root_stack/info_page/vulkan_info.rs
@@ -76,22 +76,22 @@ impl VulkanInfoFrame {
vbox.pack_start(&grid, false, true, 5);
- let features_expander = Expander::new(Some("Feature support"));
-
- vbox.pack_start(&features_expander, false, true, 5);
+ let features_expander = Expander::builder().label("Feature support").build();
let features_scrolled_window = ScrolledWindow::builder().build();
features_scrolled_window.set_vexpand(true);
let features_box = Box::new(Orientation::Vertical, 5);
-
features_box.set_halign(Align::Center);
+ features_box.set_valign(Align::Fill);
features_scrolled_window.add(&features_box);
features_expander.add(&features_scrolled_window);
+ vbox.pack_start(&features_expander, false, true, 5);
+
let extensions_box = Box::builder()
.orientation(Orientation::Vertical)
.spacing(5)